如何为子域永久禁用 Chrome HSTS

问题描述 投票:0回答:4

我有以下设置:

应用程序

https://app.domain.de
是我们的生产环境,自动转发为使用HTTPS。这里一切正常。最重要的是,我们的 QA 团队可以通过
http://develop.app.domain.de
访问该应用程序的多个开发版本(此处不需要 HTTPS)。

问题从这里开始:一旦我访问

https://app.domain.de
Chrome(我猜还有其他浏览器),也会将
http://develop.app.domain.de
(无 HTTPS)转发到
https://develop.app.domain.de
(HTTPS)。我当然可以禁用 HSTS 并清除该域的缓存,并且
http://develop.app.domain.de
将起作用,但前提是我再次访问
https://app.domain.de

我无法为我们的开发环境启用 HTTPS,因为您至少需要在 Heroku 中有一个爱好计划才能这样做,因此这对于我们应用程序的所有开发和测试环境来说都是浪费金钱。我还想保留 url 架构。

所以我的问题是如何永久禁用这种令人讨厌的转发(HSTS)?

google-chrome https hsts
4个回答
270
投票

您可以在 Google Chrome 警告页面上的任意位置输入

thisisunsafe
,它会在没有警告的情况下加载它。不是开玩笑。


5
投票

在主域上,您可以删除 HSTS 标头的 includesubdomains 选项,这样它就不会重定向子域。

但是,这不是最安全的解决方案。 为了有效,最好在所有域和子域上设置 HSTS+includesubdomains(或者攻击者汽车伪造域“http://secure.yourdomain.com”) “ 例如)。

因此,最安全的解决方案是为您的开发域使用自签名证书(或真实的证书),并在浏览器中导入它。


1
投票

HSTS 并不“令人讨厌”——它是一项安全功能。并且您的域已自愿选择激活!

您可以从生产中删除 includeSubDomains 选项,这样它仅适用于顶级域而不是子域,前提是您尚未将其提交到网络浏览器中(请告诉我您在没有完全理解其含义的情况下没有预加载它! - 您可以通过 SSL Labs 测试工具运行您的主域来检查这一点。

然而,世界各地都在向 HTTPS 发展,而您的开发环境并不能反映生产环境。某些功能(HTTP/2、地理定位...等)仅在使用 HTTPS 时才有效,并且

此列表正在增长。此外,根据您开发和引用资源的方式,一旦部署到生产环境,您可能会开始看到混合内容警告或丢失内容。因此,在我看来,您DO 在您的开发/QA 环境中需要 HTTPS。虽然我不知道您的平台,但您最好弄清楚如何在您的开发环境中设置 HTTPS,而不是尝试解决这个问题。自签名证书可以免费创建,并在您的测试环境中受到信任,因此对于选定数量的用户而言,它们与真实证书没有区别。


0
投票
我也有同样的问题。 Chrome 不断将我的开发网站的 http 更改为 https。但适用于 Microsoft Edge。然后找到了这个解决方案:

从 chrome > 设置 > 隐私和安全 > 站点设置 >(单击您的 QA 站点)develop.app.domain.de > 不安全内容 > 允许

© www.soinside.com 2019 - 2024. All rights reserved.