我有一个公司网站,其托管为https://foo.bar.com。
但是,很多用户错误地传达了URL为www.foo.bar.com。在此可以纠正之前,我们正在通过设置代理网站www.foo.bar.com来实施临时解决方案,该网站将重定向到达https://foo.bar.com的所有用户。
这有效......但仅在用户第一次导航到该页面时才有效。下次我尝试访问www.foo.bar.com时,由于缓存,浏览器会将我带到https://www.foo.bar.com。我们没有为https://www.foo.bar.com设置证书,因此会出现NET :: ERR_CERT_COMMON_NAME_INVALID错误。
有没有办法在不需要证书的情况下解决这个问题?
为了测试,当我导航到www.foo.bar.com时,我甚至尝试返回一个网页,其链接导航到https://foo.bar.com。但是,即使在这种情况下也会出现同样的问题。我猜HSTS在这里发挥作用,但不知道如何去做。
我很感激对此事的任何见解,谢谢你。
答案 0 :(得分:1)
我相信您问题的唯一解决方案是获取www.foo.bar.com的有效证书。由于证书错误,浏览器不会尝试与您的服务器通信,因此您无法从错误的域重定向到正确的域。
你提到HSTS所以我假设https://foo.bar.com正在发送Strict-Transport-Security标头作为其响应的一部分。此标头可能与 includeSubDomains 选项一起发送,该选项指示浏览器不仅在foo.bar.com上强制执行HTTPS,还强制执行该主域的所有子域。因此,当尝试请求www.foo.bar.com时,浏览器会匹配该HSTS规则并自动重新编写它以使用HTTPS。
一旦在浏览器中设置了此HSTS规则,除非通过超出原始最大使用期限或通过发出另一个 max-age = 0