最近google chrome浏览器会自动将http跳转到https
HSTS(HTTP Strict Transport Security)协议中,HTTP 到 HTTPS 的跳转状态码通常为 307 Temporary Redirect(内部重定向)。
307 状态码
一、HSTS机制的核心原理
HTTP Strict Transport Security(HSTS)是一种安全协议,通过服务器响应头Strict-Transport-Security强制浏览器仅通过HTTPS访问特定域名。其工作原理包括: 预加载机制:部分域名(如Google.com)被内置到Chrome的HSTS预加载列表中,首次访问即强制HTTPS。
缓存策略:若网站曾通过HTTPS访问,浏览器会缓存该策略(默认有效期6个月),后续HTTP请求自动升级。
子域扩展:通过includeSubDomains指令可覆盖所有子域名。
二、Chrome自动跳转HTTPS的触发场景
HSTS生效:域名服务器已启用HSTS或用户曾通过HTTPS访问。 HTTPS Upgrades功能:Chrome 115+版本默认尝试将HTTP请求升级为HTTPS(即使服务器未配置重定向)。
安全策略冲突:混合内容(HTTPS页面加载HTTP资源)可能触发跳转。
三、禁用HTTPS自动跳转的实战方法
- 方法1:清除HSTS缓存
访问chrome://net-internals/#hsts
在Delete domain security policies输入目标域名并删除。
注意:需同时删除顶级域名(如sklinux.com 查询)。
如图:
- 方法2:禁用HTTPS Upgrades功能
Chrome 123+版本:
地址栏输入chrome://flags/#https-upgrades
将Automatic HTTPS Upgrades设为Disabled。
- 方法3:隐私模式/无痕窗口
临时绕过HSTS限制,但非持久解决方案。
- 方法4:修改系统级配置(Windows/macOS)
Windows注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome 新建DWORD值HstsEnabled
,设为0
- macOS策略文件: 编辑/Library/Managed Preferences/com.google.Chrome.plist,添加HstsEnabled。
四、潜在风险与替代方案
- 安全风险:
禁用HSTS可能导致中间人攻击。建议仅在开发环境或测试时使用。 - 服务器端优化:
若需强制HTTP访问,可移除服务器的HSTS响应头或配置Strict-Transport-Security: max-age=0。 (AI生成)