我支持一个古老的工业纯 HTTP Web 应用程序,用户可以通过
http://app.suborg.example.com/
访问该应用程序。我最近发现另一个网站 https://example.com/
通过添加 includeSubDomains
将 HSTS 设置得太激进
现在,如果用户访问
example.com
,他们将立即无法访问 app.suborg.example.com
,因为浏览器重定向到 HTTPS。这会产生一个 ERR_EMPTY_RESPONSE
页面,因为服务器不侦听 https。我们可以手动导航到about://net-internals/#hsts
并每次删除该条目,但这并不理想。
到目前为止,我已经尝试过:
thisisunsafe
:仅适用于证书错误页面,我实际上没有看到http://app/
:它内部有硬编码的主机名...它会响应,但通常由于缺少资源而返回 404。除了手动删除 HSTS 条目之外,现代 Chromium/Chrome/Edge 是否还有其他选项?用户不多,而且我直接支持他们,所以即使是一个繁琐的解决方案也可以。
HttpAllowlist 不适用于 HSTS 升级。 HSTSPolicyBypassList 不会阻止使用 Strict-Transport-Security 响应标头“动态”请求 HSTS 升级的服务器进行 HSTS 升级。我认为这就是他们没有生效的原因。
对于 Edge 浏览器,您可以将此策略 AutomaticHttpsDefault 设置为
DisableAutomaticHttps
,然后从 HTTP 到 HTTPS 的自动切换将被禁用。
如果您只想禁用特定网站的自动切换,您可以使用此策略 InsecureContentAllowedForUrls 并在那里配置这些网站。
对于 Chrome 浏览器,有相同的政策 InsecureContentAllowedForUrls。但没有AutomaticHttpsDefault 策略。如果想要和AutomaticHttpsDefault一样的效果,可以尝试在
HTTPS Upgrades
中勾选禁用chrome://flags
。