HSTS max-age 无效/Nginx 中没有更新

HSTS max-age 无效/Nginx 中没有更新

使用 Debian10 和全新的 Nginx1.20.1,当我检查时: curl -I https://example.com我得到了Strict-Transport-Security: max-age=2592000,当我检查我的网站时 https://www.ssllabs.com/ssltest/analyze.html,我看到的结果是

严格传输安全 (HSTS) 是 太短 (少于 180 天) max-age=2592000

我搜索了所有 nginx.conf 和所有包含的文件,但找不到该指令add_header Strict-Transport-Security ...

因此,我将以下行添加到我的服务器块、http 块、位置块以及其中的一个块中,测试了不同的情况:

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

并再次检查上面的链接,结果是:

严格传输安全 (HSTS) 无效服务器提供了多个 HSTS 标头

值得一提的是,在上述两种情况下,当我在 Firefox 浏览器中检查响应标头时,我新添加的指令max-age2592000没有生效!

我使用 cloudeflare 作为我的 DNS 服务器,因此我在仪表板中启用/禁用了 HSTS,但没有观察到任何变化。

现在让我如何Strict-Transport-Security max-age在 Nginx 中找到默认值以及如何有效地更改它。

答案1

Cloudflare 是世界其他地方看到的 TLS 终止端点。因此,它设置了 HSTS 标头。Cloudflare 会忽略源 HSTS 标头。

您需要修改Cloudflare控制面板中的HSTS设置。

答案2

我的 webApp 是由 ASP.net core 制作的,当在 startup.cs 中启用 HTTPS 时,HSTS 的默认值为 30 天。这使得 nginx 配置被视为重复,并且分析器中出现一些错误。

相关内容