我是针对本地主机开发的。今天早上,在我使用fiddler后,我开始在chrome上得到这个错误(在firefox中正确工作)
“您现在无法访问本地主机,因为该网站使用HSTS。网络错误和攻击通常是暂时的,所以这个页面以后可能还能正常工作。”
现在localhost工作在chrome只有提琴手正在运行。我已经确定了当提琴手关闭时,提琴手所做的代理重定向被纠正。
我还尝试将证书导入到受信任的根目录,并重新启动浏览器(以及计算机)。
我是针对本地主机开发的。今天早上,在我使用fiddler后,我开始在chrome上得到这个错误(在firefox中正确工作)
“您现在无法访问本地主机,因为该网站使用HSTS。网络错误和攻击通常是暂时的,所以这个页面以后可能还能正常工作。”
现在localhost工作在chrome只有提琴手正在运行。我已经确定了当提琴手关闭时,提琴手所做的代理重定向被纠正。
我还尝试将证书导入到受信任的根目录,并重新启动浏览器(以及计算机)。
当前回答
我已经被这个问题折磨了很长时间。我无法打开像GitHub这样的网站。 我几乎尝试了所有的答案在网上,没有人工作。尝试重新安装chrome浏览器。 我从我们的网络人员那里找到了解决方案,它起作用了。 在注册表中有一个修复,将解决这个错误的永久基础。
按Windows+R键打开运行对话框 输入:regedit并按enter打开注册表 在左侧树视图中,单击以下路径HKEY_LOCAL_MACHINE > SOFTWARE > POLICIES > Microsoft > SystemCertificate > Authroot 现在双击右边的DisableRootAutoUpdate,并在出现的对话框中将其设置为0(零) 重新启动您的PC应用注册表更改,您将不再得到这个错误
上述解决方案适用于Windows 8。它在后来的版本中几乎是相同的,但我不确定早期的版本,如XP和vista。所以这需要检查。
其他回答
这种策略机制只保证与网站的HTTPS交互安全(从不保证HTTP)。HTTP严格传输安全缩写代表HTTP严格传输安全。保持最新的协议可以防止对安全协议的攻击。
HSTS响应的HSTS内部的漏洞是在2009年BlackHat Federal的一次题为“在实践中击败SSL的新技巧”的演讲中首次发现的。Marlinspike的工具SSLStrip演示了存在问题的漏洞。
使用该工具将安全的HTTPS连接转换回不安全的HTTP连接。解决方案是使用HSTS与浏览器通信,始终建议使用HTTPS连接。通过使用HSTS, cookie将不再被Firesheep等通过cookie窃取登录凭证的漏洞拦截。
点击chrome窗口的任何地方,在chrome中输入这是不安全的(而不是之前的坏主意)。
此密码短语将来可能会更改。这是源
https://chromium.googlesource.com/chromium/src/+/master/components/security_interstitials/core/browser/resources/interstitial_large.js#19
根据这一行,输入window.atob('dGhpc2lzdW5zYWZl')到您的浏览器控制台,它将给您实际的密码短语。
这次的密码是不安全的。
遇到类似的错误。重置chrome://net-internals/#hsts没有为我工作。问题是我的虚拟机的时钟按天倾斜。重新设置时间确实解决了这个问题。https://support.google.com/chrome/answer/4454607?hl=en
当你之前访问https://localhost时,它不仅通过一个安全通道(https而不是http)访问了这个,它还告诉你的浏览器,使用一个特殊的http头:严格传输安全(通常缩写为HSTS),它应该只使用https所有未来的访问。
这是一个网络服务器可以用来防止人们降级到http的安全特性(无论是故意的还是一些邪恶的一方)。
然而,如果你关闭了https服务器,只是想浏览http,你就不能(通过设计-这是这个安全特性的重点)。
HSTS还阻止您接受和跳过过去的证书错误。
若要重置此设置,使HSTS不再为本地主机设置,请在Chrome地址栏中输入以下内容:
chrome://net-internals/#hsts
在这里你可以删除“localhost”的设置。
您可能还想知道是什么设置了这个,以避免将来出现这个问题!
请注意,对于其他网站(例如www.google.com),这些是“预加载”到Chrome代码,因此不能删除。当你在chrome://net-internals/#hsts中查询它们时,你会看到它们被列为静态hsts条目。
最后请注意,谷歌已经开始为整个.dev域预加载HSTS: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/
一个非常快速的方法是,当你查看“你的连接不是私有的”屏幕时:
类型badidea
输入这是不安全的(归功于Java Guy找到了新的密码短语)
这将允许安全异常,当Chrome不允许通过点击设置异常时,例如,对于这个HSTS情况。
显然,这只推荐用于本地连接和本地网络虚拟机,但它的优点是适用于用于开发的虚拟机(例如端口转发的本地连接),而不仅仅是直接的本地主机连接。
注意:Chrome开发人员在过去已经更改了这个密码短语,并可能再次这样做。如果你学到了新的密码,请在这里留言。我也会这么做的。
编辑:自2018年1月30日起,此密码短语似乎不再有效。
如果我能找到一个新的,我会贴在这里。与此同时,我将花时间使用这篇stackoverflow帖子中概述的方法来设置一个自签名证书:
如何使用openssl创建自签名证书?
编辑:2018年3月1日和Chrome版本64.0.3282.186此密码短语再次适用于。dev站点上的hsts相关块。
编辑:截至2018年3月9日和Chrome版本65.0.3325.146,badidea密码不再有效。
编辑2:自签名证书的问题似乎是,随着安全标准的全面收紧,它们会导致自己的错误被抛出(例如,nginx在默认情况下拒绝在授权链中加载包含自签名证书的SSL/TLS证书)。
我现在采用的解决方案是将我所有的。app和。dev开发站点上的顶级域名换成。test或。localhost。Chrome和Safari将不再接受标准顶级域名(包括。app)的不安全连接。
目前的标准顶级域名列表可以在维基百科的这篇文章中找到,包括特殊用途的域名:
维基百科:互联网顶级域名列表:特殊用途域名
这些顶级域名似乎不受新的仅https限制:
。local .localhost test (任何自定义/非标准顶级域名)
有关更多信息,请参阅答案和从编码手到原始问题的链接:
密码手的回答