You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用helmet模块后localhost自动重定向至HTTPS,干扰本地开发

解决Helmet导致本地localhost强制HTTPS重定向的问题

问题根源

启用Helmet后,它默认开启了**HSTS(HTTP严格传输安全)**响应头。这个头会让浏览器强制对该域名使用HTTPS协议,且浏览器会缓存这个规则——哪怕你关闭了Helmet或者切换到其他未启用HTTPS的本地项目,缓存的规则依然会生效,导致所有localhost端口的请求都被强制重定向到HTTPS。

解决方案

1. 在开发环境中禁用Helmet的HSTS规则

修改项目代码,针对开发环境关闭HSTS,避免浏览器被植入强制跳转规则:

const helmet = require('helmet');

// 根据环境配置Helmet
app.use(helmet({
  hsts: process.env.NODE_ENV === 'development' 
    ? false  // 开发环境禁用HSTS
    : {      // 生产环境保持严格配置
        maxAge: 31536000,
        includeSubDomains: true
      }
}));

2. 清除浏览器已缓存的localhost HSTS规则

如果已经出现强制跳转,需要手动清除浏览器缓存的HSTS策略:

  • Chrome/Edge:在地址栏输入chrome://net-internals/#hsts,找到「Delete domain security policies」,输入localhost后点击「Delete」。
  • Firefox:在地址栏输入about:config,搜索network.stricttransportsecurity.preloadlist并设置为false;或进入「设置-隐私与安全-清除数据」,勾选「缓存的Web内容」和「Cookie和网站数据」进行清除(注意:此操作会清除所有网站的缓存和Cookie)。
  • Safari:打开「偏好设置-隐私-管理网站数据」,搜索localhost并点击「移除」。

3. 额外注意

如果需要在开发环境保留Helmet的其他安全头,确保contentSecurityPolicy等规则允许localhost的HTTP资源加载,避免出现其他资源加载异常。

内容的提问来源于stack exchange,提问作者Takeshi Tokugawa YD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 21:12:36