HSTS 不适用于 Chrome

use*_*139 2 apache-http-server ssl tls hsts

我已将 Apache 配置为返回 HSTS 标头。从 Google Chrome连接到https://lab20.example.com并使用开发人员工具运行时,我可以看到以下响应标头:Strict-Transport-Security:max-age=63072000; includeSubdomains;

但它不起作用。当我尝试访问http://lab20.example.com 时,Chrome 允许这样做。

同样在从 chrome 运行时:chrome://net-internals/#hsts Query domain "lab20.example.com"我收到“未找到响应”。

谁能解释为什么会发生这种情况?

sfa*_*ota 9

对于遇到类似问题的其他人 - 可能是因为您的浏览器尚未通过 HTTPS 访问该站点。尝试通过 HTTPS 访问它,然后再次通过 HTTP 访问。如果 HSTS 正确实现,那么最后一个请求应该会失败。MDN 很好地解释了它

注:Strict-Transport-Security忽略浏览器时,您的站点使用访问HTTP; 这是因为攻击者可能会拦截HTTP连接并注入或删除标头。当您的站点在HTTPS没有证书错误的情况下被访问时,浏览器就会知道您的站点是HTTPS有能力的并且会尊重 Strict-Transport-Security标头。