即使用户被 301 跳到 HTTPS,首次那次明文请求仍可能被劫持。HSTS 让浏览器记住:以后只走 HTTPS。

防护配置

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

要点速览

  • max-age 设为一年,浏览器在有效期内不再发起 http 明文请求。
  • includeSubDomains 一并保护子域,但要确保所有子域都已支持 HTTPS 再开。
  • always 参数保证错误响应也带这个头,防护不留死角。
HSTS 是 301 跳转的升级版:从「每次劝」变成「浏览器自己记」。