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

Bug*_*nny 20 google-chrome localhost hsts

这是Google Chrome将localhost重定向到https的后续问题.

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

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

Sus*_*ple 33

您可以在此处遵循解决方案.

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

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

  • 嗯,在 Windows 上的 Chrome `79.0.3945.117` 上,这个解决方案不起作用。我继续收到 307 重定向。我仍然必须访问“chrome://net-internals/#hsts”并将其删除。 (5认同)
  • 凉爽的!遗憾的是,如果没有开发人员工具,这些选项就不会弹出。我仍在寻找更“永久”的解决方案,但这绝对有帮助!谢谢! (3认同)
  • 步骤 1.5 是切换回加载本地主机页面/路径的选项卡。 (2认同)

emi*_*llo 12

更新:

如果您想免费为这些域安装适当的SSL证书,那么您不需要乱用HSTS.看看这里.


您可以编辑系统的hosts文件:

  • 在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
Run Code Online (Sandbox Code Playgroud)

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

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

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


yan*_*kst 12

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

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

这就是我所做的:

  1. 打开谷歌浏览器
  2. 在搜索栏中输入chrome://flags/#allow-insecure-localhost
  3. 启用Allow invalid certificates for resources loaded from localhost.

如果您重新加载应用程序,警告就会消失。

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


mar*_*owb 5

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

{
    "HSTSPolicyBypassList": [
        "localhost"
        ]
}
Run Code Online (Sandbox Code Playgroud)

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

  • 对于 Brave 浏览器,我必须在以下位置创建此文件:`/etc/brave/policies/driven/policies.json` (3认同)