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。

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

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

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

你的浏览器将不再强迫这个网站进行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

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

原文链接:http://www.wosign.com/FAQ/faq_2018111401.htm

怎么在Chrome和Firefox浏览器中清除HSTS设置?的更多相关文章

  1. chrome和Firefox浏览器渲染页面的不同

    一直很好奇chrome和firefox这两大浏览器的页面渲染有什么不同,今天自己写了些html代码来做了下检验. 先做html编码,代码如下: <!DOCTYPE html><htm ...

  2. firefox浏览器中silverlight无法输入问题

    firefox浏览器中silverlight无法输入问题 今天用firefox浏览silverlight网页,想在文本框中输入内容,却没想到silverlight插件意外崩溃了.google一下,发现 ...

  3. JavaScript在IE浏览器和Firefox浏览器中的差异总结

    JavaScript在IE浏览器和Firefox浏览器中存在一些差异,以下对这些差异部分进行了总结,以及解决方案: 1.HTML对象的 id 作为对象名的问题 IE:HTML 对象的 ID 可以作为 ...

  4. firefox浏览器中 bootstrap 静态弹出框中select下拉框不能弹出(解决方案)

    问题出现场景1: 在firefox浏览器中在bootstrap弹出的modal静态框中再次弹出一个静态框时 select下拉框不能弹出选项 解决方案:去掉最外层静态框的 tabindex=" ...

  5. Chrome和Firefox浏览器执行new Date() 函数传参数得到不同结果的陷阱

    某日,同事问到关于new Date() 函数传参数,在火狐浏览器和谷歌浏览器控制台运行,会得到不同的结果,刚开始觉得不可能,后来实际操作才发现此陷阱 var date = new Date('2014 ...

  6. Chrome和Firefox浏览器调试对比

    最近的项目中使用Extjs5, 其中主要的一个特点就是js文件的动态加载,之前使用Firefox浏览器对js文件进行调试,打断点时,只对当次调试有效,刷新之后,由于动态加载的js文件(文件名后面加了一 ...

  7. javascript 禁止页面选取-兼容IE、Chrome和firefox浏览器

    在做到一个页面需要禁止网页内容被选取的时候,碰到浏览器兼容的问题,解决方法如下 1.单独使用适用于IE.Chrome浏览器,主要是在head的<script>标签里面加上如下代码 docu ...

  8. IE, Chrome和Firefox浏览器 差异对比

    最近的项目中使用Extjs5.6, 其中主要的一个特点就是js文件的动态加载,之前使用Firefox浏览器对js文件进行调试,打断点时,只对当次调试有效,刷新之后,由于动态加载的js文件(文件名后面加 ...

  9. 爬虫工具fiddle在firefox浏览器中的使用

    1.fiddle工作原理 浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,默认通过自己发送HTTP(或HTTPS)请求到服务器. 使用Fiddler之后,浏览器像目标服务器发送的请求都会经 ...

随机推荐

  1. PTA | 1008 数组元素循环右移问题 (20分)

    一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1--AN-1)变换为(AN-M -- AN-1 A0 ...

  2. Win 10 C 盘突然爆满,怎么清理?

    Win 10 C 盘突然爆满,怎么清理? 使用windows的小伙伴们都知道,C盘是安装系统的,有时候不知道为啥突然就爆满了,查看我的电脑,C盘显示红色的.是不是感觉狠揪心,想删除一些东西有不敢删除, ...

  3. Linux网络安全篇,认识防火墙(三),TCP Wrappers

    1.防火墙设置文件 任何以xinetd管理的服务都可以通过 /etc/hosts.allow /etc/hosts.deny 这两个文件来设置防火墙(针对源IP或域进行允许或操作的设置). 其实/et ...

  4. Linux学习,path,环境变量的配置

    方法一: 1.查看当前环境变量配置的所与信息 echo $PATH 注意: echo是输出的意思 加$表示它是一个变量 2.配置环境命令 PATH="$PATH":comdir 注 ...

  5. MySQL5.7使用Notifier启动、停止服务时出现的问题

    1.选择右击右下角 MySQL Notifier ,选择 Actions -> Manage Monitored Items 2.选择当前的服务 MySQL57  并进行删除 3.然后点击  a ...

  6. python3(三十六)StringIO BytesIO

    """ StringIO和BytesIO """ __author__on__ = 'shaozhiqi 2019/9/23' # !/us ...

  7. 条件变量 condition_variable wait

    wait(阻塞当前线程,直到条件变量被唤醒) #include <iostream> #include <string> #include <thread> #in ...

  8. Markdown 语法自用

    Markdown 语法自用 1. 标题 用#来标记 hi hihi hihihi hihihiih hihihihihi hihihihihihi 2. 段落格式 2.1 字体 ​ 斜体:文字两端加上 ...

  9. springboot项目war包部署及出现的问题Failed to bind properties under 'mybatis.configuration.mapped-statements[0].

    1.修改pom文件 修改打包方式 为war: 添加tomcat使用范围,provided的意思即在发布的时候有外部提供,内置的tomcat就不会打包进去 <groupId>com.scho ...

  10. 曹工说Redis源码(6)-- redis server 主循环大体流程解析

    文章导航 Redis源码系列的初衷,是帮助我们更好地理解Redis,更懂Redis,而怎么才能懂,光看是不够的,建议跟着下面的这一篇,把环境搭建起来,后续可以自己阅读源码,或者跟着我这边一起阅读.由于 ...