HSTS介绍


最近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生成)
Devops