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. ASP.NET Core WEB API 使用element-ui文件上传组件el-upload执行手动文件文件,并在文件上传后清空文件

    前言: 从开始学习Vue到使用element-ui-admin已经有将近快两年的时间了,在之前的开发中使用element-ui上传组件el-upload都是直接使用文件选取后立即选择上传,今天刚好做了 ...

  2. Mac osx下误删了mach_kernel文件,如何找回

    brew install xar 假设当前有一个 pkg 文件"filename.pkg",先使用以下命令解开 pkg: $ xar -xf filename.pkg 解压后发现其 ...

  3. 如何将icon图标库引入自己的项目中

    ---恢复内容开始--- 今天是18年的国庆,趁着国庆的这股开心劲儿,开开心心的写点东西: 第一篇:关于如何将icon图标库引入自己的项目(此方法Taro,微信小程序,支付宝小程序等均适用,不会存在不 ...

  4. webpack4.0(01.基础配置和初识)

    1.什么是webpack? 2.webpack可以做什莫? 代码转换.文件优化.代码分割.模块合并.自动刷新.代码校验.自动发布 3.我们要学习webpack的什么? 4.使用webpack 1.首先 ...

  5. wireshark抓包实战(二),第一次抓包

    1.选择网卡. 因为wireshark是基于网卡进行抓包的,所以这时候我们必须选取一个网卡进行抓包.选择网卡一般有三种方式 (1)第一种 当我们刚打开软件是会自动提醒您选择,例如: (2)第二种 这时 ...

  6. Django 配置访问顺序 ->MTV开发模式

    框架模式mvc m-->model 数据库 v-->view  视图 c-->controller  控件逻辑 mtv(django) m-->model 数据库 t--> ...

  7. Redis分布式锁的实现以及工具类

    一.应用场景: 本文应用的场景为在查询数据时,发现数据不存在此时就需要去查询数据库并且更新缓存,此时可能存在高并发的请求同时打在数据库上,而针对这种情况必须要给这些请求加锁,故而采用了分布式锁的方式. ...

  8. bootstrapTable随机改变列颜色

    { title: '运单编号', field: 'waybillNumber', align: 'center', valign: 'middle', cellStyle: function (val ...

  9. Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(七)之Access Control

    Access control ( or implementation hiding) is about "not getting it right the first time." ...

  10. 45道SQL数据题详解1

    准备阶段: 创建表: //创建学生表,前面的s表示学生,相应的标签前面加t表示老师 CREATE TABLE students (sno VARCHAR(3) NOT NULL, sname VARC ...