如何为子域永久禁用Chrome HSTS

时间:2017-06-20 10:42:11

标签: google-chrome https hsts

我有以下设置:

应用程序https://app.domain.de是我们的生产环境,会自动转发以使用HTTPS。这一切都很好。最重要的是,我们的QA-Team可以通过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中至少拥有一个Hobby Plan才能这样做,因此这会浪费我们应用程序的所有开发和测试版本。我还想保留url架构。

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

3 个答案:

答案 0 :(得分:23)

您可以在Google Chrome警告页面的任意位置键入thisisunsafe,它会在没有任何警告的情况下加载它。不开玩笑。

答案 1 :(得分:3)

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

但是,这不是最安全的解决方案。为了提高效率,最好在您的所有域和子域上设置HSTS +包含子域(或者攻击者汽车伪造域名“{{3} }“ 例如)。

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

答案 2 :(得分:1)

HSTS不是"讨厌" - 这是一项安全功能。并且您的域名已自愿选择激活!

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

然而,世界各地都在向HTTPS发展,而您的开发环境并不反映生产。某些功能(HTTP / 2,地理位置等)仅在使用HTTPS和this list is growing时才有效。根据您开发和引用资源的方式,一旦部署到生产环境,您可能会开始看到混合内容警告或缺少内容。因此,在我看来, DO 需要在开发/ QA环境中使用HTTPS。虽然我不了解您的平台,但您真的更好地了解如何在您的开发环境中设置HTTPS,而不是试图解决这个问题。可以免费创建自签名证书,并使其在您的测试环境中受到信任,因此它们与真实证书无法区分,可与选定数量的用户区分开来。