如何从Google Chrome中的HSTS列表中永久排除localhost

时间:2016-08-16 07:02:55

标签: google-chrome localhost hsts

这是Google Chrome redirecting localhost to https的后续问题。

有谁知道,如何从Google Chrome中的HSTS列表中永久排除localhost

或者,任何其他优雅的解决方案,每次从在HTTPS项目上工作转换到HTTP上的其他项目时都不需要开发人员访问chrome://net-internals/#hsts并删除localhost

4 个答案:

答案 0 :(得分:29)

您可以按照解决方案here进行操作。

当Google Chrome将您的localhost Url从http://localhost重定向到https://localhost时,请执行以下操作:

  1. 打开“开发人员工具”面板(CTRL + SHIFT + I)
  2. 点击并按住重新加载图标
  3. 菜单将会打开
  4. 从此菜单中选择第3个选项(“清空缓存和硬重新加载”)

答案 1 :(得分:12)

<强>更新

  

如果您想免费为这些域安装适当的SSL证书,那么您将不需要使用HSTS。看看here

您可以编辑系统的主机文件:

  • 在Windows上:C:\Windows\System32\drivers\etc\hosts
  • 在Linux上:/ets/hosts

在那里,您可以为每个项目定义不同的域:

 127.0.0.1    project1.local
 127.0.0.1    project2.local
 127.0.0.1    projectN.local
  

注意:我使用* .local域名(你几乎可以使用任何东西)因为你已经将localhost设置为重定向到https,所以我们必须使用不同的域名。虽然我强烈建议您安装一个真正的SSL证书并重置为默认您对HSTS所做的任何修改。

保存后,当您在任何浏览器中导航到这些域时,它将从127.0.0.1(localhost)加载。如果您使用apache / nginx作为服务器,您可以选择为每个域定义VirtualHosts,这样您每次切换项目时都不需要更改httpd文件夹。

当然,您必须重新颁发任何可能用于新域的项目的证书,但这些证书对于每个项目都是唯一的。在Chrome上,对于您没有证书的项目(对于拥有证书的项目为0次),您不需要为每个域多次弄乱网络内容。

答案 2 :(得分:1)

不是永久性修复(可能涉及安全问题)

我找到了一个“修复程序”。有趣的事情,但不能永久解决,因为它可能导致多个安全问题。

这就是我所做的:

  1. 打开Goog​​le Chrome浏览器
  2. 在搜索栏中,键入chrome://flags/#allow-insecure-localhost
  3. 已启用Allow invalid certificates for resources loaded from localhost.

如果重新加载应用程序,则警告将消失。

PS之所以这样做,是因为我需要重新创建认证,但没有时间。这就是我这样做的原因。当我的证书可以在本地运行时,我将关闭此功能。

答案 3 :(得分:0)

Chrome 78支持称为HSTSPolicyBypassList的策略。您可以将“ localhost”列出为绕过HSTS的域。 要在Linux上配置Chrome策略,只需在/etc/opt/chrome/policies/managed/policies.json中创建一个文件,内容如下:

{
    "HSTSPolicyBypassList": [
        "localhost"
        ]
}

您可以在地址栏中输入chrome:// policy /来查看Chrome加载的策略。