问题排查
TLS 错误怎么办:证书无效、握手失败、SSL_ERROR 的原因与处理
开启代理后出现 TLS 或 SSL 错误的排查:证书无效或不受信任、握手失败、协议版本不匹配、系统时间错误、客户端 MITM 功能、企业网络中间设备、节点 TLS 参数问题,给出浏览器与终端下的处理方法。
TLS 错误看起来吓人,原因却很集中:时间、DNS、中间人、节点参数。按顺序排除。
按现象分类
| 提示 | 常见原因 |
|---|---|
| 证书已过期 / 尚未生效 | 系统时间错误 |
| 证书与域名不匹配 | DNS 污染或劫持 |
| 证书不受信任 / 未知颁发者 | 客户端 MITM、企业中间设备 |
| 握手失败 / handshake failure | 协议版本、节点参数、运营商干扰 |
| SSL_ERROR_RX_RECORD_TOO_LONG | 端口配置错误 |
一、系统时间
证书有有效期,系统时间偏差几分钟以上就可能验证失败。设置中开启自动同步时间。虚拟机、长期休眠的电脑、刚换电池的设备常见。
二、DNS
域名被污染解析到错误的 IP,连上的服务器证书自然对不上。
- 客户端 DNS 设置启用内置 DNS,使用 DoH 或走代理。
- 清系统 DNS 缓存(Windows
ipconfig /flushdns,macOSsudo 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 跳过验证作为长期方案。
常见问题
- 开了代理提示证书错误怎么办?
- 依次校准系统时间、让 DNS 走代理、关闭客户端 MITM 功能、换节点。企业网络换热点测试。
- 终端 curl 报 SSL certificate problem?
- 系统 CA 证书缺失或时间错误。更新系统证书,校准时间。不要用跳过验证的参数作为长期方案。
- 只有某个网站证书错误?
- DNS 污染让该域名解析到错误 IP。DNS 走代理,清 DNS 缓存。