0

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

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

我理解为什么这是预期的行为,但是我想知道是否无论如何我都可以将 www 重定向到非 www,尽管 www 在 www 域上没有有效证书?

如果有什么不同,我的服务器正在运行 Ubuntu。

4

1 回答 1

1

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

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

您当然可以按照评论中的建议删除 HSTS 标头的 includeSubDomains 部分,这将解决问题(一旦 maxage time 给出任何缓存响应 - 从您的示例中看起来是一年)但是还有其他这里的风险。例如,有人可以设置 wwww.mydomain.com(带有 4 个 w)或 secure.mydomain.com 或任何其他看起来合法的子域,并通过 http 而不是 https 提供它,访问者可能不会注意到。此外,子域可以访问或能够设置域的 cookie,它们是使用路径属性的一部分。这些是边缘情况,即使没有 includeSubDomains 也有 HSTS 仍然提供大量保护,所以即使没有 includeSubDomains 也最好包含它,

无论如何,在一天结束时,无论风险是什么,仍然建议两者 1)通过 HTTPS 为 www 子域提供服务,因为某些人或软件会尝试该域并避免任何问题 - 无论是否使用 HSTS,和 2) 使用 HSTS,最好尽可能使用 includeSubDomains。

于 2017-08-06T22:35:48.330 回答