HSTS 需要注意的问题

我很早就在我的网站上开启了这个功能。并加入了 hstspreload.org ,但今天偶然发现 HSTS Preload 并没有生效。原因是我之前迁移网站时,将 cloudflare 的页面规则修改了。

HSTS

HTTP Strict Transport Security 简称 HSTS。

简单来说,在网站中启用这个标头可以让浏览器只通过 https 协议进行访问,避免浏览器或用户访问 http 地址时被被劫持。“比配置 HTTP 到 HTTPS(301)重定向要安全”。

问题

https 跳转问题

HSTS Preload 要求,主域名需要由 http 跳转到对应的 https。

我正好犯了这个错误,迁移时将页面规则修改成:主域名 http 直接跳转到子域名 www 的 https,导致不符合 HSTS Preload 的要求。

preload 过期时间

cloudflare 推荐的过期时间为 6 个月,最大可设置的时间为 12 个月,但 hstspreload.org 要求最低 1 年,推荐 2 年。

所以在 cloudflare 上开启 hsts 时,要注意将 hsts 的 max-age 设置为 12 个月

cloudflare hsts setting