这是Google Chrome 将 localhost 重定向到 https的后续问题。
有谁知道,如何localhost
从谷歌浏览器的 HSTS 列表中永久排除?
或者,在从 HTTPS 项目切换到 HTTP 上的不同项目时,不需要开发人员每次都访问chrome://net-internals/#hsts
和删除的任何其他优雅的解决方案?localhost
这是Google Chrome 将 localhost 重定向到 https的后续问题。
有谁知道,如何localhost
从谷歌浏览器的 HSTS 列表中永久排除?
或者,在从 HTTPS 项目切换到 HTTP 上的不同项目时,不需要开发人员每次都访问chrome://net-internals/#hsts
和删除的任何其他优雅的解决方案?localhost
您可以在此处遵循解决方案。
当 Google Chrome 不断将您的 localhost Url 从 重定向http://localhost
到 时https://localhost
,请执行以下操作:
更新:
如果您想免费为这些域安装适当的 SSL 证书,那么您就不需要搞乱 HSTS。看看这里。
您可以编辑系统的主机文件:
C:\Windows\System32\drivers\etc\hosts
/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 次)。
Chrome 78 支持名为HSTSPolicyBypassList的策略。您可以将“localhost”列为域以绕过 HSTS。要在 Linux 上配置 Chrome 策略,只需在 /etc/opt/chrome/policies/managed/policies.json 中创建一个包含以下内容的文件:
{
"HSTSPolicyBypassList": [
"localhost"
]
}
您可以查看 Chrome 加载的策略,在地址栏输入 chrome://policy/。
我找到了一个“修复”。一些有趣的东西,但不能永久修复,因为它可能会导致多个安全问题。
这是我所做的:
chrome://flags/#allow-insecure-localhost
Allow invalid certificates for resources loaded from localhost.
如果您重新加载您的应用程序,警告应该会消失。
PS 我这样做是因为我需要重新创建认证但没有时间。这就是我这样做的原因。当我的认证将在本地工作时,我将关闭此功能。