如何永久禁用浏览器HSTS的子域

问题描述:

我有以下设置:如何永久禁用浏览器HSTS的子域

应用https://app.domain.de是我们的生产环境和自动转发到使用HTTPS。所有的工作都很好。最重要的是,我们的QA团队可以通过http://develop.app.domain.de访问该应用程序的几个开发版本(此处不需要HTTPS)。

问题从这里开始:只要我访问https://app.domain.de铬(我猜还有其他浏览器)也转发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计划才能这样做,因此会浪费我们所有开发和测试版本的应用程序。我也想保持url模式。

所以我的问题是我怎样才能永久禁用这个讨厌的转发(HSTS)?

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

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

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

+1

感谢本地使用自签名证书似乎是解决问题的好方法。 – chillyistkult

HSTS不是“讨厌” - 这是一项安全功能。还有一个是你的域名自愿选择激活的!

您可以从生产中移除includeSubDomains选项,因此它仅适用于*域名而不适用于子域名,前提是您尚未提交它以便预加载到Web浏览器中(请告诉我,如果未完全理解内容,这需要! - 你可以通过运行你的主域通过SSL Labs testing tool)来检查。

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

您可以在谷歌浏览器警告页面的任何位置键入'badidea',它会在没有警告的情况下加载它。不是开玩笑。

+0

你有没有可以测试的地方?我不想破坏我的一个域名... –

+1

Chrome更新65将单词更改为“thisisunsafe” – Anssi