问题排查

TLS 错误怎么办:证书无效、握手失败、SSL_ERROR 的原因与处理

开启代理后出现 TLS 或 SSL 错误的排查:证书无效或不受信任、握手失败、协议版本不匹配、系统时间错误、客户端 MITM 功能、企业网络中间设备、节点 TLS 参数问题,给出浏览器与终端下的处理方法。

机场导航编辑部 发布 更新 约 3 分钟
TLS 错误怎么办:证书无效、握手失败、SSL_ERROR 的原因与处理 封面图

TLS 错误看起来吓人,原因却很集中:时间、DNS、中间人、节点参数。按顺序排除。

按现象分类

提示常见原因
证书已过期 / 尚未生效系统时间错误
证书与域名不匹配DNS 污染或劫持
证书不受信任 / 未知颁发者客户端 MITM、企业中间设备
握手失败 / handshake failure协议版本、节点参数、运营商干扰
SSL_ERROR_RX_RECORD_TOO_LONG端口配置错误

一、系统时间

证书有有效期,系统时间偏差几分钟以上就可能验证失败。设置中开启自动同步时间。虚拟机、长期休眠的电脑、刚换电池的设备常见。

二、DNS

域名被污染解析到错误的 IP,连上的服务器证书自然对不上。

  • 客户端 DNS 设置启用内置 DNS,使用 DoH 或走代理。
  • 清系统 DNS 缓存(Windows ipconfig /flushdns,macOS sudo dscacheutil -flushcache)。
  • 详见 DNS 错误

三、客户端 MITM

Surge、Stash、Quantumult X 有 HTTPS 解密(MITM)功能,会用自签证书替换目标证书。未安装并信任其 CA 证书时,所有 HTTPS 网站都报证书错误。不需要该功能时关闭;需要时按客户端说明安装证书。

四、企业网络

公司或学校网络的中间设备会拦截 HTTPS 并替换证书。表现为所有网站证书颁发者都是同一个企业名称。换手机热点测试,热点下正常即为网络环境问题。

五、节点参数

部分节点的 TLS 配置(SNI、指纹、ALPN)与目标不兼容,或运营商对特定 TLS 特征干扰。换节点或换协议。Reality、Hysteria2 等新协议对干扰的抵抗更好。

六、端口错误

SSL_ERROR_RX_RECORD_TOO_LONG 通常是把 HTTP 端口当 HTTPS 用,或代理端口配置错误。核对客户端混合端口与系统代理设置。

终端下的处理

curl -v https://example.com

-v 输出会显示握手细节与证书信息。证书问题先更新系统 CA(Windows 更新系统,macOS 更新系统,Linux 更新 ca-certificates)。不要用 -k 跳过验证作为长期方案。

API 调用中的 TLS 错误见 API 连接失败。连接被中断见 连接重置

常见问题

开了代理提示证书错误怎么办?
依次校准系统时间、让 DNS 走代理、关闭客户端 MITM 功能、换节点。企业网络换热点测试。
终端 curl 报 SSL certificate problem?
系统 CA 证书缺失或时间错误。更新系统证书,校准时间。不要用跳过验证的参数作为长期方案。
只有某个网站证书错误?
DNS 污染让该域名解析到错误 IP。DNS 走代理,清 DNS 缓存。