如果你访问 http:// 的网址, 被浏览器强制转换成 https:// 而导致出发安全警告, 无法访问. 可以看看以下的方法.
✅ 什么是 HSTS?
HSTS (HTTP Strict Transport Security) 是一种安全机制,用来强制浏览器只能通过 HTTPS 访问网站,不能通过 HTTP 明文访问。
如果网站开启了 HSTS,浏览器会在一定时间内记住:"只能访问 HTTPS"。
例如,访问过 https://example.com 后,如果开启 HSTS:
• 下次即使输入 http://example.com
• 浏览器也会自动转成 https://example.com
✅ Chrome HSTS 缓存位置
Chrome 会把 HSTS 缓存存储在内部数据库中。
如果某个站点错误配置了 HSTS,可能会出现:
• 网站打不开(因为强制跳转 https)
• 证书失效导致无法访问,甚至无法绕过安全提示
🔧 如何清除 Chrome 中的 HSTS 记录?
⚠️ 重点:清理 HSTS 缓存 不是清除浏览器缓存/历史就能解决的,需要走以下步骤。
方法 1:使用 Chrome 内置工具
- 在 Chrome 地址栏输入:
sh
chrome://net-internals/#hsts
- 找到 Query HSTS/PKP domain
• 输入你的网站域名,点 "Query"
• 可以看到是否设置了 HSTS 相关状态 - 找到 Delete domain security policies (注意, 删除的是根域名, 否则无效 )
• 输入你的网站域名,点击 Delete
这样即可清除 HSTS 记录。
方法 2:清空整个网络缓存
访问:
sh
chrome://net-internals/#events
点击右上角 "Clear host cache"
❓ 无法访问网站(ERR_CERT_INVALID / ERR_SSL_PROTOCOL_ERROR)
若遇到类似错误:
ERR_CERT_AUTHORITY_INVALID
ERR_SSL_PROTOCOL_ERROR
可能是:
• 域名绑定 HSTS,但证书过期
• 本地保存的 HSTS 状态导致无法继续访问
解决:按照上面 chrome://net-internals/#hsts → Delete domain security policies 清除。
📌 HSTS preload(预加载)注意事项
某些网站会使用:
sh
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
加上 preload 就会加入 Chrome 内置 HSTS 列表,即使你没访问过这个网站,Chrome 也会强制 HTTPS。
这种情况 本地删除无效,恢复极困难,需要在 hstspreload.org 申请删除。
简单总结
| 场景 | 解决办法 |
|---|---|
| 浏览器本地记住 HSTS 导致打不开 | chrome://net-internals/#hsts 删除 domain |
| Chrome 强制 HTTPS 且无法恢复 | 如果网站在 preload 列表,需要去 hstspreload.org 处理 |
| 清除 DNS + HSTS | chrome://net-internals/#events → Clear host cache |
