当 HSTS 处于活动状态时使用 CNAME 记录重定向到 HTTPS

当 HSTS 处于活动状态时使用 CNAME 记录重定向到 HTTPS

我们有一个在 HTTPS 上运行的网站,其 URL 如下:abc.example.com。

问题是,我们的客户认为任何网站 URL 都应该以“”开头www,并印www.abc.example.com在其所有标签上......

没问题,我只是使用 IIS 的 URL 重写功能创建了一条重定向规则,将所有主机名重定向到https://abc.example.com。到目前为止一切顺利。

几个月前,我们收到了他们 IS 部门的一封电子邮件,说abc.example.com缺少Strict-Transport-Security标头。他们要求我们实现以下标头:

Strict-Transport-Security = max-age=31536000; includeSubDomains; preload.

当时我还没有完全意识到这个标头的具体功能,所以我盲目地将它添加到网站上。我确实测试了网站,只是从未使用 进行过测试www.abc.example.com

我刚刚才发现,这个 HSTS 标头会自行将所有 HTTP URL 重定向到 HTTPS URL,导致忽略了我的自定义重定向规则。现在的问题是,用户输入http://www.abc.example.com并被重定向到https://www.abc.example.com,而不是https://abc.example.com,导致 SSL 证书错误,因为www.abc.example.com没有 SSL 证书。

只要includeSubDomains处于活动状态,我似乎几乎无法采取任何措施来阻止这种情况发生在网络服务器上,除非我专门为设置了 SSL 证书www.abc.example.com

这就是为什么我想尝试通过在 DNS 级别重定向并使用 CNAME 记录来解决这个问题:www.abc.example.com. CNAME abc.example.com.

我的问题是,这会起作用吗?当用户输入时http://www.abc.example.com,CNAME 记录会先将此 URL 重定向到http://abc.example.com,然后https://abc.example.com使用 HSTS 标头成功重定向到吗?或者该参数是否会preload阻止这种情况发生,即使在 DNS 级别?

任何建议或帮助都将不胜感激。

答案1

不,这行不通。DNS 级别上不存在重定向;重定向是 HTTP 协议的功能,而 DNS(和ACNAME记录仅用于解析 IP 地址。

试图通过删除标题来扭转局面也是没用的,

Strict-Transport-Security = max-age=31536000; includeSubDomains; preload.

因为它会在每个浏览器上缓存31536000几秒钟,即 365 天。

然而,如果您不以这种方式实现 HSTS,那么您就无法获得太多好处,因为有人可能会http://www.abc.example.com在它重定向到之前尝试进行修改https://

此时,唯一的出路可能是获得一个覆盖的通配符证书*.abc.example.com,或者一个同时具有以下特征的多主机名证书:主题备用名称秒。

相关内容