启用HSTS后,是否可以从非安全连接重定向到安全连接?

时间:2017-08-06 12:40:57

标签: security ssl ssl-certificate hsts strict-transport-security

我最近开始在我的某个网站上提供“严格传输安全”标题。我没想到的一个问题是我的SSL证书只涵盖mydomain.com,因此如果用户访问www.mydomain.com而不是被重定向(如先前所发生的那样),他们会看到他们的浏览器出现安全错误由于新标题不允许所有非https通信。

出于各种原因,我使用的是多域证书,因此不能简单地购买添加了“www”的新证书。

我理解为什么这是预期的行为但是我想知道是否有任何方式让我将www重定向到非www尽管www在www域上没有有效的证书?

如果它有任何区别,我的服务器正在运行Ubuntu。

1 个答案:

答案 0 :(得分:1)

如评论中所述,如果您的HSTS标头中包含includeSubDomains,那么这将导致您出现问题,因为拥有此标头的浏览器将尝试访问https://my.yourdomain.com(即通过HTTPS),这将导致证书错误。< / p>

说实话,最佳做法是包括mydomain.com和www.domain.com,如果任何证书和大多数CA将以相同的价格包含这两个域。这不适用于多域或通配符证书,但仍然是最佳实践,因此应该尽可能地进行。

你当然可以删除你的HSTS标题中的includeSubDomains部分,如评论中所建议的那样,这将解决问题(一旦任何缓存响应由maxage time给出 - 看起来比你的例子长一年)但是这里还有其他风险。例如,有人可以设置wwww.mydomain.com(包含4个w)或secure.mydomain.com或任何其他合法的子域名,并通过http而不是https提供服务,访问者可能不会注意到。此外,子域可以访问或能够设置使用路径属性的域的cookie。这些都是边缘情况并且即使没有includeSubDomains也有HSTS仍然提供大量保护,所以即使没有includeSubDomains也可以更好地包含它,但是如果要打开HSTS那么最好能够转向它完全。

无论如何,无论风险如何,它仍然建议双方1)通过HTTPS提供www子域名,因为有些人或软件会尝试这个域并避免任何问题 - 是否使用HSTS,以及2)使用HSTS,理想情况下尽可能使用includeSubDomains。