37

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

有谁知道,如何localhost从谷歌浏览器的 HSTS 列表中永久排除?

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

4

4 回答 4

56

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

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

  1. 打开开发者工具面板 (CTRL+SHIFT+I)
  2. 单击并按住重新加载图标
  3. 将打开一个菜单
  4. 从此菜单中选择第三个选项(“Empty Cache and Hard Reload”)
于 2016-09-23T07:13:10.943 回答
15

更新:

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


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

  • 在 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 次)。

于 2016-09-24T00:10:12.397 回答
6

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

{
    "HSTSPolicyBypassList": [
        "localhost"
        ]
}

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

于 2019-10-09T14:35:44.110 回答
6

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

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

这是我所做的:

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

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

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

于 2019-10-29T14:36:34.863 回答