Strict-Transport-Security 头怎么配置才生效? Newb.克培 提问于 2026-03-15 09:09:18 阅读 52 安全 我在 Nginx 里加了 Strict-Transport-Security 响应头,但浏览器好像没识别,是不是我写法有问题? 试过这样配: add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; 但用 curl 看响应头里没有这个字段,是漏了什么吗? 我来解答 赞 8 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 设计师柚溪 Lv1 你的配置写法本身没问题,但 curl 看不到可能有几个原因: 第一个常见问题是配置位置。add_header 只能继承自上级作用域,如果你把它放在 location 块而不是 server 块里,而且 location 里还有其他 add_header,可能会被覆盖。最好直接放在 server 块里。 第二个可能是你的 Nginx 版本比较老。旧版 Nginx 对 add_header 的处理有些坑,比如在 if 条件里可能不生效。 第三个,也是最可能的——你用 curl 测的时候是不是测的 HTTP 而不是 HTTPS?HSTS 头只会出现在 HTTPS 响应里,HTTP 响应是不会有这个头的。 你可以先确认一下是不是 HTTPS 的 server 块里配的,然后这样测: curl -k -I https://你的域名/ 参数说明一下:-k 忽略证书验证,-I 只看响应头。 如果还是不行,贴一下你的 server 块配置看看,我帮你排查一下具体哪里的问题。 回复 点赞 2026-03-16 17:03 加载更多 相关推荐 2 回答 83 浏览 为什么我的Strict-Transport-Security头没有生效? 我在Nginx配置里加了Strict-Transport-Security: max-age=31536000;,但用在线工具检查发现这个头信息没出现。重启服务后还是没效果,配置文件放在server块... Mr-秀云 安全 2026-02-07 07:06:24 1 回答 44 浏览 CSP 启用 strict-dynamic 后 Vue 动态组件加载失败怎么办? 我在项目里加了 Content-Security-Policy,用了 'strict-dynamic',结果 Vue 的动态组件就报错了,控制台提示 script 被阻止。明明没写内联脚本啊,是不是 ... UX春彦 安全 2026-03-30 10:14:15 1 回答 48 浏览 HSTS 头配置后 HTTPS 重定向失效了? 我在 Nginx 里加了 Strict-Transport-Security 头,但发现原本的 HTTP 自动跳转 HTTPS 不生效了,这是为啥? 我之前是用 return 301 https://... 娅廷酱~ 安全 2026-03-27 15:19:20 1 回答 53 浏览 Security.txt 应该怎么在 React 项目里正确配置? 我最近在做前端安全加固,看到建议加个 security.txt 文件,但不太清楚怎么在 React 项目里配。试过直接放 public 目录下,但部署后访问 /security.txt 返回 404,... W″倩利 安全 2026-03-14 18:44:22 2 回答 131 浏览 设置了HSTS头但浏览器还是提示不安全,哪里出问题了? 我给项目加了Strict-Transport-Security头,代码是这样写的: app.use((req, res, next) => { res.setHeader('Stric... ლ爱景 安全 2026-02-17 14:44:36 2 回答 68 浏览 strict-dynamic 加上后第三方脚本还是被拦截,怎么回事? 我给页面加了 CSP 的 strict-dynamic 策略,本意是让通过可信脚本动态加载的资源能正常执行,但像 Google Tag Manager 这类第三方脚本还是被浏览器拦了,控制台报“blo... 轩辕丽苹 安全 2026-03-15 01:55:19 2 回答 57 浏览 security.txt 文件到底该放哪里才生效? 我最近在项目里加了个 /.well-known/security.txt,但用安全扫描工具检测时老是提示找不到。我试过放在根目录和 public 目录下,Nginx 也配了路由,但访问 /securi... 欣怡(打工版) 安全 2026-03-04 13:59:19 2 回答 63 浏览 strict-dynamic 下 Vue 动态组件加载被 CSP 阻止怎么办? 我在项目里启用了 CSP 的 strict-dynamic 策略,结果 Vue 的动态组件渲染直接被浏览器拦了,控制台报“Refused to execute inline script”。明明没写内... 夏侯梓轩 安全 2026-02-25 08:02:21 2 回答 71 浏览 CSP中的strict-dynamic有什么用?为什么我的动态脚本还是被阻止了? 我在给项目配置CSP时用了'strict-dynamic',但页面加载时动态创建的script标签还是报blocked错误。比如这样: const script = document.createEl... 付楠 安全 2026-02-06 20:32:25 2 回答 72 浏览 Security面板显示Mixed Content警告,但HTTPS配置没问题? 我在React项目里引用了HTTPS图片和CSS,但Chrome Security面板一直提示Mixed Content警告。明明检查过所有资源链接都是https://的,这是为什么? import ... 百里瑞腾 工具 2026-02-04 10:28:33
第一个常见问题是配置位置。add_header 只能继承自上级作用域,如果你把它放在 location 块而不是 server 块里,而且 location 里还有其他 add_header,可能会被覆盖。最好直接放在 server 块里。
第二个可能是你的 Nginx 版本比较老。旧版 Nginx 对 add_header 的处理有些坑,比如在 if 条件里可能不生效。
第三个,也是最可能的——你用 curl 测的时候是不是测的 HTTP 而不是 HTTPS?HSTS 头只会出现在 HTTPS 响应里,HTTP 响应是不会有这个头的。
你可以先确认一下是不是 HTTPS 的 server 块里配的,然后这样测:
参数说明一下:-k 忽略证书验证,-I 只看响应头。
如果还是不行,贴一下你的 server 块配置看看,我帮你排查一下具体哪里的问题。