跳到内容

📜 SSL 检查

按主机名获取 SSL/TLS 证书并检查发行者、有效期、SAN 和完整证书链。

完全免费 无需注册 服务器处理 无日志 / 数据库 限速 5 种语言 深色模式

⚠️ 请求从 DevLab 服务器发起。不允许私有 IP 地址和 localhost。

📖 本诊断能告诉你什么

浏览器的锁标只有在「证书有效」「签发者受信任」「域名匹配」三者同时成立时才会出现。本诊断会实际完成 TLS 握手,检查返回证书的有效期、签发者、覆盖域名以及证书链的组成。即使本地浏览器显示正常,证书链不完整时也会只在部分环境失败——旧版 Android、curl 或服务器间调用报错而桌面 Chrome 正常,多半就是这种情况。

检查项 含义 未通过时的处理
有效期 剩余天数。Let's Encrypt 证书有效期 90 天,若自动续期已停止,约 60 天后就会进入告警区间。 使用 certbot 时可用 certbot renew --dry-run 确认续期链路是否正常。失败大多是 80 端口被封导致 HTTP-01 验证无法完成,或续期后没有 reload nginx。
证书链 从服务器证书到受信任根证书的路径。若不下发中间证书,只有本地没有缓存该证书的客户端会验证失败。 nginx 的 ssl_certificate 必须指向 服务器证书与中间证书拼接 的文件(certbot 为 fullchain.pem)。指向 cert.pem 是该问题最典型的原因。
域名匹配(SAN) 证书覆盖的主机名列表。浏览器读取的是 SAN 而非 CN。example.comwww.example.com 属于不同名称,两者都必须包含。 重新签发时列出所有主机,如 certbot 的 -d example.com -d www.example.com。通配符证书需要 DNS-01 验证,且注意 *.example.com 并不包含 example.com 本身。
TLS 版本 TLS 1.0 / 1.1 已废弃,PCI DSS 也明令禁止。1.2 是底线,1.3 为现行标准。 nginx 中收紧为 ssl_protocols TLSv1.2 TLSv1.3;。这会淘汰旧客户端,建议先查看访问日志中的 User-Agent 再做决定。

浏览器会缓存曾获取过的中间证书,因此证书链不完整时在本机往往无法复现。可靠的验证方式是查看 openssl s_client -connect example.com:443 -servername example.com 的输出中是否包含中间证书。

🔗 相关工具