34

我有以下设置:

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

问题从这里开始:只要我访问https://app.domain.deChrome(我猜还有其他浏览器),就将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)?

4

3 回答 3

167

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

于 2018-03-06T12:35:07.297 回答
5

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

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

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

于 2017-06-20T11:18:15.983 回答
3

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

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

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

于 2017-06-20T11:41:09.630 回答