网站没有发送 HSTS 标头,而该标头告诉浏览器始终通过 HTTPS 访问它。没有它,访客的第一次请求可能会通过普通 HTTP 发出,而这可能被拦截,例如在公共 Wi-Fi 上。
含义
HSTS(HTTP 严格传输安全)是一个响应标头,例如 Strict-Transport-Security: max-age=31536000。浏览器一旦看到它,就会在指定的秒数内对该网站使用 HTTPS,即使有人输入或点击的是 http:// 地址。
触发条件
安全标头检查每周一次通过 HTTPS 加载主页。如果它没有 max-age 大于零的 Strict-Transport-Security 标头,就会触发此中优先级问题。它会显示在应用中,不会发送邮件。
HSTS 也是安全标头评级中的六个标头之一。请参阅 安全标头较弱。
常见原因
- Web 服务器、主机套餐或 CDN 默认不发送它。
- 网站迁移到 HTTPS 时遗漏了它,之后也一直没有添加。
- 它以 max-age=0 发送,这会关闭 HSTS。
如何修复
- 确保整个网站都能通过 HTTPS 访问,并且普通 HTTP 会重定向到 HTTPS。请参阅 HTTPS 设置不正确。
- 在您的 Web 服务器、CDN 或主机设置中添加 Strict-Transport-Security: max-age=31536000。例如在 Cloudflare 中,它位于 SSL/TLS → Edge Certificates 下。
- 只有在每个子域名都能通过 HTTPS 正常访问后,才添加 includeSubDomains 或 preload,因为届时浏览器也会拒绝以普通 HTTP 访问它们,而且 preload 很难撤销。
何时消除
检查每周运行一次,因此问题会在下一次不再发现该问题的每周检查时消失,其行动项会在 7 天后从行动计划中移除。
如果您将该行动项标记为完成,但 14 天后仍发现该问题,它会以“修复未生效”状态重新出现。请参阅 使用行动计划。