这是 Google Chrome 将 localhost 重定向到 https 的后续问题。
有人知道如何从 Google Chrome 的 HSTS 列表中永久排除
localhost
吗?
或者,任何其他优雅的解决方案不需要开发人员每次从 HTTPS 项目切换到 HTTP 上的其他项目时都访问
chrome://net-internals/#hsts
并删除 localhost
?
您可以按照此处的解决方案进行操作。
当 Google Chrome 不断将您的本地主机网址从
http://localhost
重定向到 https://localhost
时,请执行以下操作:
更新:
如果您愿意的话,您可以免费为这些域安装合适的 SSL 证书,这样您就不需要浪费 HSTS 的麻烦。看看这里。
您可以编辑系统的主机文件:
C:\Windows\System32\drivers\etc\hosts
/etc/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
(本地主机)加载。如果您使用 apache/nginx 作为服务器,您也可以选择为每个域定义 VirtualHosts,这样您就不需要每次切换项目时更改 httpd 文件夹。
当然,您必须为新域的这些项目重新颁发您可能拥有的任何证书,但这些证书对于每个项目都是唯一的。在 Chrome 上,对于没有证书的项目,您不需要为每个域多次搞乱网络内部(对于那些有证书的项目,则为 0 次)。
Chrome 78 支持名为 HSTSPolicyBypassList 的策略。您可以将“localhost”列为域以绕过 HSTS。 要在 Linux 上配置 Chrome 策略,只需在 /etc/opt/chrome/policies/management/policies.json 中创建一个包含以下内容的文件:
{
"HSTSPolicyBypassList": [
"localhost"
]
}
您可以在地址栏输入 chrome://policy/ 来查看 Chrome 加载的策略。
我找到了“修复”。一些有趣的事情,但不能永久修复,因为它可能会导致多个安全问题。
这就是我所做的:
chrome://flags/#allow-insecure-localhost
Allow invalid certificates for resources loaded from localhost.
如果您重新加载应用程序,警告应该会消失。
PS 我这样做是因为我需要重新创建认证但没有时间。这就是我这样做的原因。当我的认证在本地运行时,我会关闭此功能。
我厌倦了从 chrome://net-internals/#hsts 删除
localhost
,所以我学习了如何为 macOS 创建一个配置文件来设置两个 Chrome 策略:
HSTSPolicyBypassList
+ CertificateTransparencyEnforcementDisabledForURLs
这里是一个存储库,其中包含配置策略的 macOS 可安装配置文件,以及有关
defaults write com.google.Chrome HSTSPolicyBypassList -string "localhost"
不起作用的原因的说明。 https://github.com/ip2k/I-Dont-Care-About-HSTS-For-Localhost
此外,chrome://flags/#allow-insecure-localhost 和 https://chromedevtools.github.io/devtools-protocol/tot/Security/#method-setIgnoreCertificateErrors 对于经常使用此工具的人来说可能会很有趣,或者在无头环境中。我已经在上述存储库中添加了我能找到的与此相关的任何内容的链接。欢迎 PR!