我有以下设置:
应用程序
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 警告页面上的任意位置输入
thisisunsafe
,它会在没有警告的情况下加载它。不是开玩笑。
在主域上,您可以删除 HSTS 标头的 includesubdomains 选项,这样它就不会重定向子域。
但是,这不是最安全的解决方案。 为了有效,最好在所有域和子域上设置 HSTS+includesubdomains(或者攻击者汽车伪造域“http://secure.yourdomain.com”) “ 例如)。
因此,最安全的解决方案是为您的开发域使用自签名证书(或真实的证书),并在浏览器中导入它。
HSTS 并不“令人讨厌”——它是一项安全功能。并且您的域已自愿选择激活!
您可以从生产中删除 includeSubDomains 选项,这样它仅适用于顶级域而不是子域,前提是您尚未将其提交到网络浏览器中(请告诉我您在没有完全理解其含义的情况下没有预加载它! - 您可以通过 SSL Labs 测试工具运行您的主域来检查这一点。
然而,世界各地都在向 HTTPS 发展,而您的开发环境并不能反映生产环境。某些功能(HTTP/2、地理定位...等)仅在使用 HTTPS 时才有效,并且此列表正在增长。此外,根据您开发和引用资源的方式,一旦部署到生产环境,您可能会开始看到混合内容警告或丢失内容。因此,在我看来,您DO 在您的开发/QA 环境中需要 HTTPS。虽然我不知道您的平台,但您最好弄清楚如何在您的开发环境中设置 HTTPS,而不是尝试解决这个问题。自签名证书可以免费创建,并在您的测试环境中受到信任,因此对于选定数量的用户而言,它们与真实证书没有区别。
从 chrome > 设置 > 隐私和安全 > 站点设置 >(单击您的 QA 站点)develop.app.domain.de > 不安全内容 > 允许