什么是HSTS

HSTS(HTTP Strict Transport Security)即HTTP严格传输安全,是一种web安全策略机制,用于帮助网关保护网站免受协议降级攻击。

为什么要加入HSTS预加载列表

如果一个站点被添加到HSTS预加载列表中,那么浏览器将永远认为该站点是安全的,并且不会在请求该站点时发送不安全的HTTP请求。这就避免了 HTTP 重定向到 HTTPS 时的中间人攻击。

如何申请加入HSTS预加载列表

  1. 确定你的域名是否符合以下条件:
    1. 提供有效的证书
    2. 所有的 HTTP 重定向到 HTTPS
    3. 所有的子域名都要做好 HTTPS 的支持(如果没想好则不推荐加入)
    4. 在主域上提供 HSTS header
      • max-age 至少为 31536000 秒(一年)
      • 必须要有 includeSubDomains 指令
      • 需要要有 preload 指令
    • 示例:Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
  2. 点击这里打开申请网站,将你的主域输入到文本框后回车开始检测,如果检测通过则提交申请即可。

如何检查是否已经加入并生效

  1. 提交申请后可以再次打开申请网站 将域名输入后回车,如果显示 Status: yourdomain.com is currently preloaded. 则意味着申请通过。
  2. 因为 HSTS 域名都是硬编码到 chromium 项目中的,所以 点击这里 打开 chromium HSTS 列表的 json 文件搜索你的域名如果在这个文件中则意味着已经编码进去了,在未来的一段时间会陆续加入到 Chrome、Firefox、Edge等浏览器中。
  3. 浏览器打开 chrome://net-internals/#hsts 页面,在 Query HSTS/PKP domain 中输入域名,如果显示 Found 则意味着已经在浏览器生效了。