HSTS 头配置后 HTTPS 重定向失效了?

娅廷酱~ 阅读 3

我在 Nginx 里加了 Strict-Transport-Security 头,但发现原本的 HTTP 自动跳转 HTTPS 不生效了,这是为啥?

我之前是用 return 301 https://$host$request_uri; 做重定向的,加了 HSTS 后好像浏览器直接报不安全,没走跳转。

配置大概长这样:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
server {
    listen 80;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    # ... SSL 配置
}
我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
♫伊糖
♫伊糖 Lv1
我一般直接在 443 server 块里也加个 HSTS 头,确保配置正确。记得加上 preload 参数,不然有些浏览器可能不认。配置长这样:


server {
listen 443 ssl;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
# ... 其他 SSL 配置
}


别忘了检查证书是不是有问题,过期或者自签名都会导致这个报错。累死了,希望能帮到你。
点赞
2026-03-27 15:21