网站使用了 HSTS 无法继续访问怎么办:证书报错没有继续按钮的原因与解决
很多人第一次遇到 HSTS 是这样的:打开一个平时常用的网站,浏览器显示「您的连接不是私密连接」,下面写着「您目前无法访问此网站,因为此网站使用了 HSTS」,平时点开「高级」就能看到的继续前往链接不见了。Firefox 的提示更直接:此网站使用 HTTP 严格传输安全指定只能建立安全连接,无法为此证书添加例外。最常见的场景是连公共 Wi-Fi 还没登录认证页、电脑时间不对、杀毒软件开着 HTTPS 扫描、公司网络做了流量检查,或者访问的境外网站在当前网络下被劫持到了错误的证书。
HSTS 本身不是错误,它是网站给浏览器的一条指令:以后只用 HTTPS 访问我,证书有任何问题都不许用户绕过。真正的问题永远是证书为什么出错。所以处理顺序是先找出证书出错的原因,修好它,而不是想办法绕过 HSTS;清除 HSTS 记录只在极少数情况下有用,而且对预加载列表里的网站完全无效。下面先讲 HSTS 与普通证书错误的区别,再按步骤排查。
HSTS 报错与普通证书报错的区别
网站开启 HSTS 后,浏览器第一次访问时会记下这条规则和有效期,有效期内即使你手动输入 http 也会被强制改成 https。预加载列表是浏览器厂商维护的一份内置名单,名单上的网站从第一次访问起就受保护,像谷歌系网站以及 .dev、.app 这类顶级域名下的所有网站都在其中,本地无法移除。了解 HTTP 与 HTTPS 的基本差别有助于理解这一点。
| 对比项 | 普通证书报错 | HSTS 网站证书报错 | HSTS 预加载网站 |
|---|---|---|---|
| 能否点继续前往 | 可以 | 不可以 | 不可以 |
| 规则来源 | 无 | 网站响应头下发并缓存 | 浏览器内置列表 |
| 能否本地清除 | 无需清除 | 可以删除该域名记录 | 不能删除 |
| 典型网站 | 自签名证书的内网服务 | 开启 HSTS 的普通网站 | 大型网站与部分顶级域名 |
| 常见错误代码 | NET::ERR_CERT_AUTHORITY_INVALID 等 | 同左,但没有继续按钮 | 同左 |
| 正确处理 | 确认可信后再继续 | 找出证书出错原因 | 找出证书出错原因 |
按顺序排查:分步操作
- 第一步:先把网络线路准备好。如果报错只在访问境外网站时出现、国内网站一切正常,多半是当前网络下这个网站被干扰或劫持到了错误的证书,先连上刺猬VPN 再打开目标网站,客户端自定义用户名和密码即可匿名注册,不需要邮箱和手机号;
- 第二步:看错误代码。点报错页上的错误代码文字可以展开详情,ERR_CERT_DATE_INVALID 指向时间问题,ERR_CERT_COMMON_NAME_INVALID 指向证书与域名不匹配,ERR_CERT_AUTHORITY_INVALID 指向签发机构不受信任;
- 第三步:核对系统时间。打开系统的日期与时间设置,开启自动同步时间与时区,电脑主板电池没电时每次开机时间都会回到很久以前,所有证书都会被判为未生效;
- 第四步:检查是不是连着需要认证的公共 Wi-Fi。酒店、机场与咖啡馆的 Wi-Fi 会把所有请求劫持到登录页,先在浏览器里打开一个普通的 http 网址触发认证页,登录后再访问原网站;
- 第五步:临时关闭杀毒软件的 HTTPS 扫描或网页防护功能。这类功能会用自己的证书替换网站证书,如果它的根证书没装好,就会触发报错;
- 第六步:在公司网络里出现时,问一下网管是否部署了流量检查设备,这种情况需要安装公司的根证书,或者换到其他网络访问;
- 第七步:确认证书问题已解决但仍报错时,再清除该域名的 HSTS 记录。Chrome 与 Edge 在地址栏打开 chrome://net-internals/#hsts(Edge 用 edge://net-internals/#hsts),在 Delete domain security policies 一栏输入域名后点删除;
- 第八步:Firefox 在历史记录里找到该网站,右键选择忘记此网站,会一并清除它的 HSTS 记录;Safari 需要清除该网站的网站数据;
- 第九步:清除后关闭全部浏览器窗口重新打开。如果网站在预加载列表里,删除操作不会生效,只能回到前面几步修好证书问题。
按现象排查:错误代码对应的原因
同样是没有继续按钮,不同的错误代码对应完全不同的原因。
- ERR_CERT_DATE_INVALID:系统时间错误,或者网站证书确实过期,先校准时间,仍报错就是网站自己的问题,只能等对方续期;
- ERR_CERT_COMMON_NAME_INVALID:拿到的证书不是这个域名的,常见于 DNS 被劫持或公共 Wi-Fi 认证页,换网络或连上线路后重试;
- ERR_CERT_AUTHORITY_INVALID:签发机构不受信任,常见于杀毒软件、公司流量检查或者中间人劫持;
- 只有某一个浏览器报错:该浏览器的证书存储或扩展有问题,试一下其他浏览器做对比;
- 所有网站都报证书错误:几乎一定是系统时间或者杀毒软件,不是网站的问题;
- 只有境外网站报错:当前网络对这些网站有干扰,连上线路后通常就能恢复;
- 连上线路后仍报错:检查是否开启了智能分流而该域名没走线路,临时切到全局模式验证;
- 手机上出现同样提示:手机浏览器同样会缓存 HSTS,检查时间设置与是否连着需要认证的 Wi-Fi;
- 自己搭的网站报 HSTS 错误:证书配置不完整或中间证书缺失,在服务器上补齐证书链。
不同网络环境下的处理方式
公共 Wi-Fi 是 HSTS 报错的高发地,也是最需要加密的地方。在机场、酒店连网时,先完成认证页登录,再连上线路,后续流量都会经过加密通道,能避免被同一网络中的其他设备窥探。免费节点永久免费、不限流量、不限速,适合出差临时使用;断线保护会在线路中断时阻止流量改走未加密的公共网络。实际可用性取决于当前网络环境。
| 对比项 | 家庭宽带 | 公共 Wi-Fi | 连上线路后 |
|---|---|---|---|
| 常见原因 | 时间错误或杀毒软件 | 认证页劫持 | 分流规则未覆盖 |
| 境外网站报错 | 常见 | 常见 | 较少出现 |
| 是否需要清 HSTS | 很少需要 | 不需要,先认证 | 很少需要 |
| 数据安全 | 取决于网络 | 风险较高 | HTTPS+AES 加密传输 |
| 断线保护 | 无 | 无 | 客户端支持断线保护 |
| 推荐动作 | 校准时间、关扫描 | 先登录认证页 | 切全局模式验证 |
网站管理员需要注意什么
如果你维护自己的网站,开启 HSTS 前要确认所有子域名都已经有有效证书,因为带 includeSubDomains 的规则会把子域名一并锁住,某个子域名证书过期,用户就再也无法绕过。建议先用较短的有效期测试,比如一天,确认没问题再延长到一年;申请加入预加载列表是不可逆性很强的操作,退出要等浏览器版本更新,周期很长。
证书续期要自动化,过期一次在 HSTS 下的后果比普通网站严重得多:用户不能点继续,只能等你修好。部署后用浏览器开发者工具的安全面板与在线检测工具检查证书链是否完整,缺少中间证书在部分系统上同样会触发签发机构不受信任的错误。
命令行里怎么确认证书问题
浏览器的报错页信息有限,用命令行能更快看清楚拿到的到底是哪张证书。在 Windows、macOS 或 Linux 终端执行 curl -vI 加上网址,输出里的 subject 一行是证书颁发给哪个域名,issuer 一行是签发机构,expire date 是到期时间;如果 subject 与你访问的域名对不上,或者 issuer 是杀毒软件、公司设备的名字,问题就一目了然。
还可以对比两种网络下的结果:先在当前网络执行一次,再连上线路执行一次。两次的签发机构不同,说明当前网络在中途替换了证书;两次都一样且都报错,才是网站自身的证书问题。这一步比反复清缓存、换浏览器更能直接定位原因。如果终端里同样报证书验证失败,而浏览器换了几种都一样,基本可以排除浏览器本身的问题,把精力放在网络与系统设置上。
和其他证书与协议问题的分工
HSTS 只是证书报错的一种特殊形态。没有 HSTS 的普通证书报错、「不安全」提示以及各种证书错误代码的完整处理,见 证书错误与不安全提示修复指南,那里讲的时间校准与杀毒软件排查同样适用于本文的情况。
想弄清楚 HTTPS 到底保护了什么、为什么网站要强制 HTTPS,可以看 HTTP 与 HTTPS 的区别。理解了这一层,就能明白 HSTS 为什么要禁止用户绕过:如果攻击者能让你点一下继续,HTTPS 的保护就形同虚设。
常见报错速查表
| 现象 | 原因 | 解决办法 |
|---|---|---|
| 提示网站使用了 HSTS | 证书异常且网站禁止绕过 | 先找出证书出错原因 |
| ERR_CERT_DATE_INVALID | 系统时间错误或证书过期 | 开启自动同步时间 |
| ERR_CERT_COMMON_NAME_INVALID | 证书与域名不匹配 | 换网络或连上线路重试 |
| ERR_CERT_AUTHORITY_INVALID | 杀毒软件或流量检查 | 关闭 HTTPS 扫描或装根证书 |
| 公共 Wi-Fi 下全部报错 | 认证页劫持 | 先完成 Wi-Fi 登录认证 |
| 删除 HSTS 记录无效 | 域名在预加载列表 | 只能修好证书问题 |
| 只有境外网站报错 | 当前网络干扰 | 连上线路后重试 |
高频问答
- 问:能不能强行绕过 HSTS?答:不建议,网站开启 HSTS 就是为了防止用户在证书异常时继续访问,绕过等于放弃 HTTPS 的保护;
- 问:删除 HSTS 记录安全吗?答:只删除你确认证书问题已解决的那个域名,删除后它会在下次访问时重新被记录;
- 问:为什么谷歌网站删不掉?答:它们在浏览器内置的预加载列表中,本地无法移除;
- 问:手机上怎么清除?答:手机浏览器通常没有单独入口,清除该网站的网站数据或浏览数据即可;
- 问:连了线路就不会遇到 HSTS 报错了吗?答:能解决网络干扰造成的那一类,时间错误与杀毒软件造成的仍需要自己修;
- 问:网站自己证书过期了怎么办?答:只能等网站方续期,期间换其他渠道获取信息。
遇到 HSTS 报错的正确思路
看到此网站使用了 HSTS、无法继续访问,记住一句话:HSTS 只是不让你绕过,问题出在证书。先看错误代码,再依次检查系统时间、公共 Wi-Fi 认证、杀毒软件与公司网络,只在境外网站报错时换网络或连上线路,最后才考虑清除该域名的 HSTS 记录。
刺猬VPN 采用 HTTPS+AES 加密传输,自定义用户名和密码即可匿名注册,不需要邮箱和手机号;免费节点永久免费、不限流量、不限速,适合在公共 Wi-Fi 下临时使用;时长套餐有效期内不限流量、不限速,适合每天访问境外网站的用户。客户端带断线保护与按域名分流,一个账号支持多设备同时在线。实际可用性取决于当前网络环境。
换刺猬VPN告别连接烦恼:一键连接、连接稳定
刺猬VPN提供永久免费节点,不限流量;无需邮箱,自定义用户名即可匿名注册。一个账号支持多设备同时在线,实际可用性取决于当前网络环境。