如何从 Google Chrome 中的 HSTS 列表中永久排除本地主机

How to permanently exclude localhost from HSTS list in Google Chrome

这是 的后续问题。

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

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

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

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

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

更新:

You can install a proper SSL certificate for those domains if you want to for free, so you won't need to mess around with HSTS. Take a look 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

Note: I'm using *.local domains (you can use virtually anything) because you have already set localhost to redirect to https, and such we have to use a different domain. Although I strongly recommend you to install a real SSL certificate and reset to default any modifications you have made on HSTS.

保存后,当您在任何浏览器中导航到这些域时,它将从 127.0.0.1(本地主机)加载。如果您使用 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/。

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

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

这是我所做的:

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

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

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

我厌倦了从 chrome://net-internals/#hsts 中删除 localhost,所以我学会了如何为 macOS 创建一个设置两个 Chrome 政策: HSTSPolicyBypassList + CertificateTransparencyEnforcementDisabledForURLs

这是一个 repo,其中包含用于配置策略的 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!