跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

如何处理 Nginx 配置了 HSTS 但浏览器地址栏依然显示 HTTP 的怪象

HSTS导致浏览器强制HTTPS而无法访问HTTP地址;可通过chrome://net-internals/#hsts查询/删除策略,curl验证响应头,Nginx注释add_header并重载,无痕窗口测试;若域名已预加载则需换子域调试。 这其实不是 Nginx 没配好,而是 浏览器 已经“记住”了你的 HSTS 策略,但当前访问没走 HTTPS,导致它压根不发请求——连 301 跳转都看不到,地址栏自然卡在 http://。 确认 HSTS 是否已在浏览器生效 直接在 Chrome 或 Edge 地址栏输入: chrome://net-internals/#hsts 在下方 “Query domain” 输入你的测试域名(比如 test.example.com ),点 Query。 如果返回 Found ,说明浏览器已强制 HTTPS;若显示 Not found ,问题不在 HSTS,要另查其他跳转逻辑或证书配置。 检查 Nginx 是否还在发送 HSTS 响应头 即使你改了配置,旧的 HSTS 头可能仍被返回。用 curl 验证实际响应: 执行
curl -I https://test.example.com
查看输出中是否含 Strict-Transport-Security 字样 如果存在,检查 Nginx 的
server
或
http
块里是否有
add_header Strict-Transport-Security ...
;K8s Ingress 用户还要查注解或 Controller ConfigMap 中 hsts 是否启用 停掉 HSTS 并清空客户端缓存 只删配置不够,浏览器本地缓存会持续生效: Comet AI 浏览器 下载 Comet AI 浏览器,体验由 Perplexity AI 驱动的革命性上网方式。内置 AI 助手可实时总结网页、跨标签页对比信息、自动执行任务。告别繁琐操作,让 AI 成为你的浏览副驾,大幅提升研究与工作效率。支持 Windows、macOS、Android 和 iOS。 下载 先注释或删除 Nginx 中的
add_header Strict-Transport-Security
行,然后
sudo nginx -t && sudo systemctl reload nginx
回到 chrome://net-internals/#hsts ,在 “Delete domain security policies” 输入相同域名,点 Delete 立即用无痕窗口打开测试链接——无痕模式不继承 HSTS 缓存,是最快验证方式 警惕预加载列表的长期影响 如果你的域名曾提交到 hstspreload.org 并被收录,即使清空所有本地设置,主流浏览器启动时仍会硬性强制 HTTPS。这种情况下: 无法通过客户端操作解除 只能等官方列表更新(周期数周至数月) 临时方案:换一个未预加载的测试子域(如 staging.test.example.com )做调试

相关文章