Chrome:该网站使用HSTS。网络错误…此页面稍后可能会起作用


161

我正在针对localhost开发。今天早晨,在我使用提琴手之后,我开始在chrome上出现此错误(在Firefox中可以正常工作)

“由于该网站使用HSTS,您现在不能访问localhost。网络错误和攻击通常是暂时的,因此此页面稍后可能会工作。” 在此处输入图片说明

现在,只有在提琴手正在运行时,本地主机才能在chrome中工作。我已经确定当提琴手关闭时,提琴手进行的代理重定向已得到纠正。

我还尝试将证书导入到受信任的根目录,然后重新启动浏览器(以及计算机)。


2
当IT管理员更改其策略时,我会遇到此问题。我需要做的就是运行命令:gpupdate / force
Jacob Phan

Answers:


189

解决此问题的一种非常快速的方法是,当您查看“您的连接不是私有的”屏幕时:

类型 badidea

类型thisisunsafe(贷给The Java Guy来查找新密码)

当Chrome浏览器不允许通过点击设置例外(例如针对此HSTS案例)时,这将允许安全例外。

显然,仅建议将其用于本地连接和本地网络虚拟机,但它的优点是可以处理用于开发的VM(例如在端口转发的本地连接上),而不仅仅是直接本地主机连接。

注意:Chrome开发人员过去曾经更改过此密码,并且可能会再次更改。如果badidea停止工作,请在这里学习新密码。我会尝试做同样的事情。

编辑:截至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)的不安全连接。

当前的标准顶级域列表可以在此Wikipedia文章中找到,包括特殊用途的域:

维基百科:互联网顶级域名列表:特殊用途域名

这些顶级域似乎不受新的仅HTTPS限制:

  • 。本地
  • .localhost
  • 。测试
  • (任何自定义/非标准顶级域)

有关更多信息,请参见答案以及从编码人员到原始问题的链接:

编码手的回答


18
从来没有听说过这样的事情,但由于某种原因它起作用了!谢谢!
Alexey

巨大的帮助!非常感谢!
RHSmith159

我什至不敢相信这行得通,但确实可以。我不确定是否应该对此感到高兴或生气,因为我没有对此进行记录。这些年来,我在开发环境上花费了HOURS来处理这些废话。
Scott Byers

7
使用的thisisunsafe解读badidea。新版本已对此进行了更改
The Java Guy

它可以+1,但是chrome应该真正添加一个选项以继续发出警告,而不是仅仅阻止
5413668060,

186

当您以前曾经访问过https:// localhost时,它不仅通过安全通道(https而不是http)进行了访问,而且还使用特殊的HTTP标头将其告知浏览器:Strict-Transport-Security(通常缩写为HSTS) ),则以后所有访问都应仅使用https。

这是Web服务器可以用来防止人们降级为http(有意或被某些邪恶的人)降级的安全功能。

但是,如果然后再关闭https服务器,而只想浏览http,则不能(通过设计-这是此安全功能的重点)。

HSTS还会阻止您接受和跳过过去的证书错误。

要重置此设置,以便不再为本地主机设置HSTS,请在Chrome地址栏中输入以下内容:

chrome://net-internals/#hsts

您可以在其中删除“ localhost”的此设置的位置。

您可能还想了解是什么设置了此功能,以避免将来出现此问题!

请注意,对于其他网站(例如www.google.com),这些网站已“预加载”到Chrome代码中,因此无法删除。当您在chrome:// net-internals /#hsts上查询它们时,您会看到它们被列为staticHSTS条目。

最后请注意,Google已开始为整个.dev域预加载HSTS:https : //ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/


我正在gmail.com上找到它。我去了chrome:// net-internals /#hsts并查询gmail.com,发现:static_sts_domain:gmail.com static_upgrade_mode:STRICT试图删除域,但是仍然有问题。
paiego,2015年

这个答案对我来说很有意义。但是,我的问题是,我将网站名称服务器从wordpress(托管wordpress)更改为服务器(自行托管),现在已经实现了,大概所有的Chrome访问者也会这样做。知道如何在不删除缓存的情况下为访问者解决这个问题吗?
TomC

2
基本上,唯一的答案是继续使用HTTPS或希望用户不要对其进行缓存。HTTPS是前进的方向,并且不受LetsEncrypt的约束。您还应该检查是否有人将您的网站预加载到浏览器代码中,但不要猜测是否可以自己重置它。没有意识到Wordpress自动添加HSTS,所以想知道它是如何实现的。
巴里·波拉德

感谢@BazzaDP-无法解决此问题。我可能不得不改回名称服务器,找出旧站点上强制HTTPS的内容,然后尝试再次迁移。您不能简单地从Wordpress托管博客通过FTP到新站点的FTP,这就是为什么这对我来说是一个问题,并且新站点所有者没有SSL证书(尽管无论如何
也要

2
正如我在回答中提到的那样,无法删除预加载(或静态STS)条目,因为它们存在于Chrome代码中,并且不在本地维护的列表中。根据我回答的最后一行,Google已决定预加载整个开发域。
巴里·波拉德


19

我在使用私有主机名的XAMPP上运行的网站遇到此问题。事实并非如此私密!这些都是domain.devGoogle 现在已注册为私有gTLD的,并且正在域级别强制使用HSTS。将每个虚拟主机更改为.devel(eugh),重新启动Apache,现在一切正常。


我可以使用Opera 50.0.2762.9确认此问题,并且可以将我的开发域从切换为.dev.devel解决该限制。
Courtney Miles

5
RFC 2606保留了一些顶级域,专门用于防止与私有测试冲突。看来这.test可能是最适合开发环境的最正确的选择。
Courtney Miles

经过数天无法弄清为何chrome在我的.dev本地主机域上表现出这种行为之后,这确实挽救了我的性命……天哪,谁知道...
D. Petrov

好吧,实际上.test仅建议用于测试当前或新的DNS相关代码。
Alexey

这已经解决了我的问题。我在开发环境中使用Laragon。
Craig

12

我最近在尝试使用CloudFlare Origin CA访问域时遇到了相同的问题。

我发现要解决/避免Chrome(Windows构建)上的HSTS证书异常的唯一方法是遵循https://support.opendns.com/entries/66657664中的简短说明。

解决方法:
将标志添加到Chrome快捷方式--ignore-certificate-errors,然后将其重新打开并浏览到您的网站。

提醒:
仅将其用于开发目的。

在此处输入图片说明


也许可以尝试在Google Canary build google.com/chrome/browser/canary.html
Binyamin,2016年

假设您没有导致证书错误的网站。然后,您将如何检查您的解决方案是否有效?不利于在这里- stackoverflow.com/questions/41902367/...
MasterJoe2

Mac版本如何?
The Java Guy



2

我遇到相同的错误,并且隐身模式也存在相同的问题。我可以通过清除Chrome历史记录来解决此问题。


2

我长期以来一直在遭受这个问题的困扰。我无法打开GitHub之类的网站。我几乎在网上尝试了所有答案,但没有人工作。尝试也重新安装chrome。我从我们的网络人员那里找到了解决方案,它确实有效。注册表中有一个修复程序,可以永久解决此错误。

  1. Windows + R键打开运行对话框
  2. 键入:regedit,然后按Enter键打开注册表
  3. 在左侧的树视图中,单击以下路径,依次单击 HKEY_LOCAL_MACHINE> SOFTWARE> POLICIES> Microsoft> SystemCertificate> Authroot
  4. 现在,双击右侧的DisableRootAutoUpdate,然后在出现的对话框中将其设置为0(零)。
  5. 重新启动您的PC以应用注册表更改,您将不再收到此错误

上面的解决方案适用于Windows8。在更高版本中,该解决方案几乎相同,但是我不确定对于XP和Vista等较早的版本。因此需要进行检查。


您知道这个选项是什么意思吗?
MasterJoe2

@ testerjoe2:不,先生
Maulik Modi

1
受此google-analytics.com以及其他各种Google域的影响。这个答案解决了我的问题。
肖恩

support.microsoft.com/zh-cn/help/2813430/…上的文章介绍了Windows Vista修补程序中引入的密钥的行为。将此特定值设置为0会导致从Windows Update自动获取更新的根证书,并将其安装在“受信任的根证书颁发机构”存储中。在企业环境中,作为安全措施,可以将其关闭;但是,这意味着某人应该在企业级别管理受信任的根证书颁发机构。
JamieSee
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.