排错指南
无法连接:证书检测连不上服务器时的排查顺序
检测连不上服务器,没能拿到证书。
这条结论不是关于证书的。TLS 握手压根没开始,所以证书是好是坏、有没有过期,这次检测都无从知道。
先按 DNS → 端口 → 防火墙 → TLS 的顺序排,错误码会直接告诉你卡在哪一层。
错误码对应哪一层
| 错误码 | 含义 | 先查什么 |
|---|---|---|
ENOTFOUND | 域名解析不出 IP | DNS 记录是否存在、是否刚改过还没生效 |
ECONNREFUSED | IP 通,443 端口没人监听 | 服务是否在跑、是否只监听了 80 |
ETIMEDOUT | 包发出去没有回应 | 防火墙、安全组、云厂商的入方向规则 |
ECONNRESET | 连上了又被断开 | 反向代理配置、SNI 不匹配、被中间设备拦截 |
EPROTO | TLS 层协商失败 | 协议版本、加密套件是否被限制得太严 |
逐层确认
dig +short example.comnc -vz example.com 443openssl s_client -connect example.com:443 -servername example.com </dev/null第 2 步通、第 3 步不通,才说明问题真的在 TLS 层。前两步不通的话,证书配置改多少次都没用。
只对我们连不上的情况
- 只监听内网:服务绑定在
127.0.0.1或内网网卡上,公网访问不到。 - 安全组只放行了特定来源:检测服务器的 IP 不在白名单里,而你自己的机器在。
- WAF / 防爬:自动化请求被识别并丢弃,浏览器访问却正常。
- 只在特定线路可达:境内外解析不同,或者部署在只对内开放的环境。
这几种情况下,站点对真实访客可能完全正常。监控要能持续工作,就需要让检测来源能够访问到这个端点。
常见问题
检测一下你自己的域名
免登录,一次真实的 TLS 握手,直接给出结论:还有多少天到期、证书链是否完整、是否包含这个域名。
需要一张新证书?本站提供基于 Let's Encrypt 的免费签发,支持泛域名。
了解免费证书其他排错指南
- 证书过期了怎么办浏览器拦下访问,提示证书已过期或连接不是私密连接。
- 证书快到期了:先分清是没续期,还是续了没部署证书还没过期,但剩余天数已经不多了。
- 证书还没到生效时间:多半是时钟不对证书的生效时间还没到,被判定为无效。
- 证书透明度日志里出现了没见过的证书监控期间,域名下出现了不是本站签发的新证书。
- 「您的连接不是私密连接」:先找错误代码,再决定修哪里浏览器弹出红色警告拦下访问,但不知道属于哪一种证书问题。
- 关闭 TLS 1.0 / 1.1,只留 1.2 和 1.3服务器还在使用 TLS 1.0 或 1.1 协商连接。
- 证书不包含这个域名:ERR_CERT_COMMON_NAME_INVALID 的几种成因浏览器提示证书不适用于该网站,或者拿到了另一个站点的证书。
- 电脑打得开、手机 App 报证书错误:证书链缺少中间证书电脑浏览器打得开,手机 App、curl 或 Java 客户端却报证书错误。
- OCSP stapling:开了能快一点,不开也不算故障没有启用 OCSP stapling,首次握手会稍慢一些。
- 证书被吊销,或者链验证没通过证书被吊销,或者链验证没有通过。
- 自签名证书:什么时候没问题,什么时候必须换证书是自己签给自己的,浏览器不信任。
- 证书链追溯不到受信任的根:新根交叉签名与私有 CA浏览器打得开,curl、旧安卓或 Java 客户端却说找不到颁发者证书。
- RSA 密钥长度不足:为什么现在才被提醒证书的 RSA 密钥长度低于 2048 位。
- 泛域名证书为什么不覆盖主域名子域名都正常,直接访问主域名却报证书错误。
Last updated on