手机端下拉列表
400-002-9968

博客 > 如何清除Chrome和Firefox中的HSTS设置?

如何清除Chrome和Firefox中的HSTS设置?

  • 标签:
  • Chrome
  • Firefox
  • HSTS设置
  • HTTPS连接

浏览量:37623次评论:0次

作者:Claire时间:2019-09-06 09:41:54


本文讲述的是,什么是HSTS以及如何在两款最流行的浏览器上清除它们?


HSTS代表的是HTTPS严格传输安全协议,它是一个网络安全政策机制,能够强迫浏览器只通过安全的HTTPS连接(永远不能通过HTTP)与网站交互。这能够帮助防止协议降级攻击和cookie劫持。


HSTS最初是为了响应Moxie Marlinspike在2009 BlackHat Federal(2009年黑帽安全大会)上进行的题为“实践中击败SSL的新技巧”的演讲中所提出的一个漏洞而创建的。HSTS所防御的特定漏洞就是利用的是Marlinspike发布的一款叫做SSLStrip的工具。


本质上,这个工具是通过将安全的HTTPS连接转换回不安全的HTTP连接来工作的。通过告知浏览器应当使用HTTPS连接,HSTS能够修复这一问题。HSTS还能帮助避免Firesheep等常见工具窃取基于cookie的登录凭证。


不幸的是,部分HSTS设置可能会不经意地造成浏览器错误。例如,如果你使用的是Chrome,你可能就会遇到:


“隐私错误:你的连接不是私人的”(NET::ERR_CERT_AUTHORITY_INVALID)。


如果你试图进入另一个浏览器上的同一个站点,并且不会遇到相同的问题,那么HSTS设置对你的原始浏览器所造成的影响可能就会是一个问题。在这种情况下,你将需要清除它们。以下是在谷歌Chrome和Mozilla Firefox上清除它们的具体方法。


清除和忘记流行的浏览器中的HSTS设置。


如果你的浏览器已经为域名存储了HSTS设置,而你之后又试图通过HTTP或断开的HTTPS连接(错配的主机名,过期的证书等)进行连接,你就会收到一个错误。不同于其他的HTTPS错误,与HSTS有关的错误是不能忽视的。这是因为浏览器已经收到了明确的指示,表示除了安全的连接,不允许其他任何情况。


HSTS设置包括了一个“内容能够被缓存的时间”选项,它会告诉浏览器在再次进行检查之前会缓存和记住设置多久。为了立即处理完成这个错误,你将需要在你的浏览器上删除这个域名的本地HSTS设置。具体操作步骤将在下文做介绍。


这些设置需要在每个浏览器中进行清除。作为一名开发人员,如果你正在测试HSTS配置,你可能就会遇到这一错误。在Chrome中,你可能会在本地主机上接收到这一错误。如果你在实际的网站上为终端用户部署了HSTS,那么根据你的受众的多少,纠正它们当前所拥有的错误可能就是可行的。每个用户需要删除其本地HSTS设置,或者根据之前设置的‘内容能够被缓存的时间’等待它们过期。


同样需要注意的是,如果网站仍在提供HSTS标头,一旦你再次访问这个网站,你的浏览器就会存储它。因此如果你不希望再次发生这一错误,你就必须首先停止发送该标头。


Chrome和Firefox都没有用于HSTS错误的独特的错误代码,但间隙错误页面将包含关于HSTS的信息。


删除HSTS设置


请注意,这些说明主要对正在测试HSTS和现在需要删除设置的开发人员有用。对于那些你不能控制的网站,如果这些网站仍在提供HSTS标头,那么删除浏览器的本地HSTS设置就是没有帮助的,因为你的浏览器将会在每次访问/刷新后再次保存设置。


在Chrome中,你可能会看到错误“NET::ERR_CERT_COMMON_NAME_INVALID。”如果你点击Chrome中的高级(Advanced)选项,错误信息就将包括“您现在无法访问domain.com,因为该网站使用了HSTS。”这将能够确认错误是与HSTS有关的。在本地主机上,你可能会看到错误“该网站无法提供安全的连接。”


在Firefox中,间隙页面将会显示:“该网站使用了HTTP严格传输安全(HSTS)协议来指定Firefox只能通过安全的方式来连接它。因此,为该证书添加一个例外是不可能的。”


如果你已经确定错误是由于缓存的HSTS设置所造成的,请遵照以下说明来解决这一错误:


如何删除Chrome中的HSTS设置:


1. 导航到chrome://net-internals/#hsts


这是Chrome用来管理你的浏览器的本地HSTS设置的UI。


2. 首先,为了确认Chrome记录了域名的HSTS设置,请在页面底部的查询域名部分输入主机名。点击查询。如果查询框返回已找到,且同时设置信息列举在了下面,那么域名的HSTS设置就保存在了你的浏览器中。



请注意,这是一个非常敏感的搜索。请只输入主机名,比如www.example.com或example.com,不要输入任何相关的协议或路径。


3. 在删除域名部分中输入相同的主机名并点击


你的浏览器将不再强迫这个网站进行HTTPS连接!你可以通过刷新或导航到页面来测试它是否能够正常工作。


请注意,根据网站所提供的HSTS设置,你可能需要指定恰当的子域名。例如,staging.yoursite.com的HSTS设置可能需要与yoursite.com区分开来,因此视情况而定,你可能需要重复这些步骤。


如何删除Firefox中的HSTS设置:


我们将讲述两种不同的删除Firefox中的HSTS设置的方式。第一种方式应当可以适用于大多数情况——但如果有需要,我们也包括了一个手动选项。


1. 关闭Firefox中所有打开的标签。


2. 利用键盘快捷键Ctrl + Shift + H(Mac上为Cmd + Shift + H)打开完整的历史窗口。在以下步骤中,你必须使用到这一窗口或侧边栏。


3. 找到你想要为之删除HSTS设置的网站——如果需要,你可以在右上角搜索该网站。


4. 从项目列表中右键点击该网站,并点击忘记这个网站。这将会清除这个域名的HSTS设置(以及其他缓存数据)。


5. 重启Firefox并访问该网站。你现在应当能够通过HTTP/中断的HTTPS访问这一网站了。如果这些说明行不通,那么你可以尝试以下手动方式:


针对Firefox的手动方式


如果上述步骤行不通,你可以尝试以下方式。


首先,通过你的操作系统的文件资源管理器来定位你的Firefox配置文件。你可以通过导航到about:support来找到Firefox的这一文件夹。


向下滚动到页面中部,在应用程序基本要素部分,你将看到配置文件夹。点击打开文件夹


现在关闭Firefox,因此浏览器便不会覆盖我们将要进行修改的任何设置。


在你的配置文件夹中,找到并打开文件SiteSecurityServiceState.txt。该文件包含了你之前访问的域名的HSTS和HPKP(Key Pinning,一种独立的HTTPS机制)缓存设置。这些设置可能会有点杂乱无章。


搜索你想要为之清除HSTS设置的域名,并将它从文件中删除。每个条目都有域名。删除从想要的域名开始到下一个列出的域名中的所有的条目。还有一种方法,你可以将现有文件从a .txt重命名为a .bak(为了保存现有的文件,以防万一)并允许Firefox在下次启动时创建一个全新的文件。


以下是一个简单的HSTS列表示例。


www.thesslstore.com:HSTS          0               17312   1527362896190,1,0


正如前面所提到的,这一文件的格式可能会很混乱。以下是我的配置中的一个示例。每个域名的设置都以独特的颜色显示了出来,以清楚地区分开来。在这种情况下,之前域名的部分设置在开头会显示为红色:


我的评论

还未登录?点击登录

微信扫码沟通
微信扫码沟通

微信扫码沟通

售前咨询
合作
售后
return head