如何从 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
时,请执行以下操作:
- 打开开发者工具面板 (CTRL+SHIFT+I)
- 点击并按住重新加载图标
- 将打开一个菜单
- 从此菜单中选择第三个选项(“清空缓存和硬重新加载”)
更新:
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"。一些有趣的东西,但不能永久修复,因为它会导致多个安全问题。
这是我所做的:
- 打开GoogleChrome
- 在搜索栏中输入
chrome://flags/#allow-insecure-localhost
- 已启用
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!
这是 的后续问题。
有谁知道如何从 Google Chrome 的 HSTS 列表中永久排除 localhost
?
或者,是否有任何其他优雅的解决方案不需要开发人员每次从处理 HTTPS 项目切换到处理 HTTP 的不同项目时访问 chrome://net-internals/#hsts
并删除 localhost
?
您可以按照解决方案 here 进行操作。
当 Google Chrome 不断将您的本地主机 Url 从 http://localhost
重定向到 https://localhost
时,请执行以下操作:
- 打开开发者工具面板 (CTRL+SHIFT+I)
- 点击并按住重新加载图标
- 将打开一个菜单
- 从此菜单中选择第三个选项(“清空缓存和硬重新加载”)
更新:
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"。一些有趣的东西,但不能永久修复,因为它会导致多个安全问题。
这是我所做的:
- 打开GoogleChrome
- 在搜索栏中输入
chrome://flags/#allow-insecure-localhost
- 已启用
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!