我很早就在我的网站上开启了这个功能。并加入了 hstspreload.org ,但今天偶然发现 HSTS Preload 并没有生效。原因是我之前迁移网站时,手贱将网站在 cloudflare 的页面规则修改了,导致不符合 hstspreload 的要求。
HSTS 是什么
HTTP Strict Transport Security 简称 HSTS。
简单来说,在网站中启用这个标头可以让浏览器只通过 https 协议进行访问,避免浏览器或用户访问 http 地址时被劫持。比仅配置 “HTTP 到 HTTPS(301)重定向” 要安全。
需要注意的问题
https 跳转
HSTS Preload 要求,域名应该由 http 跳转到对应的 https 。不能直接跳转到子域名。
而我的网站使用 www 子域名,我正好犯了这个错误,迁移时不慎将页面规则修改成:主域名 http 直接跳转到子域名 www 的 https ,导致不符合 HSTS Preload 的要求。

如果不使用主域名而是使用子域名(例如 www ),那么正确的跳转顺序应该为:
- 从主域名的
http跳转到主域名的https - 再由主域名的
https跳转到子域名www的https。
过期时间
Cloudflare 推荐的过期时间为 6 个月,最大可设置的时间为 12 个月,但 hstspreload.org 要求最低 1 年,推荐 2 年。
所以在 Cloudflare 上开启 hsts 时,要注意将 hsts 的 max-age 设置为 12 个月。
