Nginx HSTS怎么处理开发测试环境误开 HSTS 导致的访问拦截

轻涛大大_4361

轻涛大大_4361

2026-10-10

277人浏览

原创

误开hsts导致http资源无法访问,应立即清除浏览器hsts缓存(chrome/edge用chrome://net-internals/#hsts、safari在隐私设置中清理、firefox改配置或删sitesecurityservicestate.txt),临时禁用nginx的hsts响应头,并移除80端口301跳转,开发环境禁用hsts并隔离配置。

nginx hsts怎么处理开发测试环境误开 hsts 导致的访问拦截

开发测试环境误开 HSTS 后,浏览器会缓存该策略并强制跳转 HTTPS,导致 HTTP 接口、本地调试页、mock 服务等无法访问——这不是服务没起来,而是请求压根没发出去。核心思路是:快速清除浏览器端缓存 + 临时禁用服务端 HSTS 头,不改业务逻辑,也不等 max-age 过期。

立即清除浏览器 HSTS 缓存

这是最直接有效的第一步,尤其对本地开发调试:

  • Chrome / Edge:在地址栏输入 chrome://net-internals/#hsts → 在 “Delete domain” 输入你的测试域名(如 localhost、test.example.com 或具体 IP)→ 点击 Delete;再在 “Query domain” 中确认已消失
  • Safari:进入 Safari → 设置 → 隐私 → 管理网站数据,搜索域名并移除全部记录(HSTS 信息随站点数据一并清除)
  • Firefox:地址栏输入 about:config → 搜索 security.cert_pinning.enforcement_level → 改为 0(仅临时关闭证书钉扎影响),再清空缓存和 Cookie;更彻底的方式是删除 SiteSecurityServiceState.txt 文件(位于 Firefox 配置目录中)
  • 注意:localhost 默认不受 HSTS 影响(Chrome/Firefox 均明确排除),若出现拦截,大概率是用了自定义测试域名(如 dev.test)且被 HSTS 记录了

临时停用 Nginx 的 HSTS 响应头

避免新设备或未清理缓存的同事再次中招,需从服务端源头移除 HSTS 头:

Nginx Hosting
Nginx Hosting

通过服务器本地nginx实例实现零认证静态游戏托管。作为所有浏览器游戏的主要部署方式,无需登录、无需令牌、无需用户操作。

下载
  • 找到 HTTPS 的 server 块(listen 443 ssl),删掉或注释掉这行:
    add_header Strict-Transport-Security "max-age=...; includeSubDomains; preload" always;
  • 如果使用了全局 http 块统一注入安全头,检查是否在该作用域下误加了 HSTS;若有,直接删掉或用条件判断屏蔽开发环境:
    if ($host ~* "^(dev|test|localhost)") { add_header Strict-Transport-Security "" always; }
  • 执行 nginx -t && nginx -s reload 生效,无需重启进程

开发环境绕过 HTTPS 强制跳转

HSTS 本身只在 HTTPS 响应中生效,但很多团队会配套配置 80 端口 301 跳转,这会让 HTTP 请求还没到 HSTS 就被重定向卡住:

  • 检查是否有独立的 server { listen 80; ... return 301 https://$host$request_uri; } 块;开发环境建议直接注释或删除该块
  • 若必须保留 80 端口监听(如联调需要),可改为返回 200 并透传请求:
    location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; }
  • 确保前端开发服务器(如 vite、webpack dev server)仍运行在 HTTP(如 http://localhost:5173),且不主动跳转 HTTPS

预防下次误开:区分环境配置

把 HSTS 严格限定在预发布/生产环境,开发测试环境默认不启用:

  • 用 Nginx 变量或 include 分离配置,例如:
    include /etc/nginx/conf.d/security-prod.conf;(含 HSTS)
    # include /etc/nginx/conf.d/security-prod.conf;(开发环境注释掉)
  • 在 CI/CD 流程中加入检查项:扫描所有 Nginx 配置文件,禁止 Strict-Transport-Security 出现在 dev、test、staging 类环境标签的部署包中
  • 本地开发推荐用 localhost + 自签名证书(不配 HSTS),或明确使用无 HSTS 的子域(如 dev-api.example.test),避免污染主测试域名

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

nginx firefox chrome safari edge

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

403

5

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3367

6

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

2023.08.04

6065

6

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

561

5

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.07.09

1476

5

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

2024.08.07

3958

3

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

2026.01.13

122

12

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

2026.01.13

457

23

Nginx跨平台安装实操指南:Windows、macOS与Linux环境快速搭建
Nginx跨平台安装实操指南:Windows、macOS与Linux环境快速搭建

本指南详解Nginx在Windows、macOS及Linux系统的安装全流程。涵盖官方包解压、Homebrew一键部署、APT/YUM源配置及Docker容器化方案。无论新手或开发者,均可快速搭建运行环境,掌握跨平台核心指令,为后续配置与调优奠定坚实基础。

2026.03.16

159

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习