【问题标题】:How to permanently exclude localhost from HSTS list in Google Chrome如何从 Google Chrome 的 HSTS 列表中永久排除本地主机
【发布时间】:2016-12-22 10:50:09
【问题描述】:

这是Google Chrome redirecting localhost to https 的后续问题。

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

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

【问题讨论】:

    标签: google-chrome localhost hsts


    【解决方案1】:

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

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

    这就是我所做的:

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

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

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

    【讨论】:

      【解决方案2】:

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

      {
          "HSTSPolicyBypassList": [
              "localhost"
              ]
      }
      

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

      【讨论】:

        【解决方案3】:

        更新:

        如果您愿意,可以免费为这些域安装适当的 SSL 证书,这样您就不需要搞乱 HSTS。看看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
        

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

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

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

        【讨论】:

        • 很好,但是只有在省略.localhost 部分时才有效。 (如果我把它留在那里,它仍然会重定向到 https。)你能编辑你的答案吗?
        • 已编辑,还添加了 HSTS 的替代方案。
        • 对我不起作用:Chrome 仍然切换到 https 和端口 8443。
        • 您是否清除了域的 HSTS?此答案提供了在 localhost 中使用多个项目的替代方法,如果您在每个域中使用多个具有不同安全要求的项目,它将无法工作。
        • 请注意,project1.devlocal.dev 和其他 *.dev 不是好的选择,因为 Chromium 在 Google 将 .dev 作为 gTLD 购买后不久就开始实施 HSTS。
        【解决方案4】:

        您可以关注解决方案here

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

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

        【讨论】:

        • 酷!太糟糕了,如果没有开发人员工具,这些选项不会弹出。我仍在寻找更“永久”的解决方案,但这绝对有帮助!谢谢!
        • 嗯,在 Windows 上的 Chrome 79.0.3945.117 上,这个解决方案不起作用。我继续收到 307 重定向。我仍然必须访问 chrome://net-internals/#hsts 并删除它。
        • 步骤 1.5 是切换回您正在加载本地主机页面/路径的选项卡。
        • 谢谢!完美工作:)
        猜你喜欢
        • 1970-01-01
        • 2017-11-22
        • 1970-01-01
        • 2017-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-24
        相关资源
        最近更新 更多