SSL证书检测主要用于确认网站当前实际使用的证书是否正常,以及 HTTPS 服务端的 TLS 配置是否存在问题。
通过检测域名、有效期、SAN、证书链、TLS 版本、密码套件和 SNI 等信息,可以快速判断证书是否过期、域名是否匹配、中间证书是否缺失,以及服务器是否存在 TLS 握手异常。
对于刚申请或续期的 SSL 证书,更换服务器、CDN、负载均衡配置后,也建议通过实际公网连接进行一次检测,避免“证书已经申请成功,但服务器仍然返回旧证书”的情况。
SSL证书检测可以检查哪些内容?
SSL 证书检测不能只看证书有没有过期。服务器实际提供 HTTPS 服务时,还需要检查证书与域名、证书链以及 TLS 配置之间是否匹配。
主要包括以下内容:
- 证书有效期:检查
notBefore和notAfter,确认当前服务器返回的证书是否已经生效或过期。 - 域名匹配:检查访问域名是否存在于证书的 SAN(Subject Alternative Name)中。
- 证书链:检查服务器是否正确返回必要的中间 CA 证书,避免客户端无法构建完整信任链。
- 证书颁发机构:查看证书的 Issuer,确认当前证书由哪一家 CA 签发。
- 公钥与签名算法:查看 RSA、ECDSA、SM2 等公钥算法,以及证书使用的签名算法。
- TLS协议版本:检查服务器是否支持 TLS 1.2、TLS 1.3,以及是否仍然开放不适合现代公网服务的旧协议。
- 密码套件:检查 TLS 连接实际支持的密码套件,确认是否采用现代加密算法。
- SNI配置:检查多域名 HTTPS 服务是否能够根据客户端提供的域名返回正确证书。
其中,证书有效期、域名和证书链属于最常见的基础检查项目;TLS 协议和密码套件则更多用于服务器配置排查。
在线SSL证书检测工具
如果网站已经部署到公网,最直接的方法是通过在线检测工具从公网发起 HTTPS 连接。
输入需要检查的域名后,可以重点关注:
- 当前服务器实际返回的证书;
- 证书开始时间和到期时间;
- SAN 中包含哪些域名;
- 证书链是否完整;
- 当前使用的 TLS 协议版本;
- 服务器支持哪些密码套件;
- 多 HTTPS 站点的 SNI 是否正常。
这种方式尤其适合以下场景:
- 新证书部署完成后检查;
- SSL 证书续期后确认是否已经生效;
- 更换服务器后检查 HTTPS;
- CDN 接入或切换后检查证书;
- 负载均衡配置修改后验证证书;
- 浏览器出现 SSL 错误后定位服务器问题。
需要注意的是,申请到新证书并不代表公网服务已经使用新证书。实际检测结果应该以服务器当前 443 端口返回的证书为准。
如何用OpenSSL检测SSL证书?
对于运维人员,可以直接使用 OpenSSL 检查服务器的 TLS 连接。
例如:
openssl s_client -connect example.com:443 -servername example.com
其中:
-connect指定服务器地址和端口;-servername指定 SNI 域名。
如果服务器上部署了多个 HTTPS 网站,-servername 不应该省略。否则服务器可能返回默认站点的证书,导致检测结果与浏览器实际访问结果不同。
如果需要查看服务器发送的完整证书链,可以使用:
openssl s_client -connect example.com:443 -servername example.com -showcerts
这个命令适合排查“浏览器提示证书不受信任”“部分设备访问正常、部分设备报错”等证书链问题。
OpenSSL如何查看SSL证书有效期?
如果已经获得 .crt、.cer 或 PEM 格式证书,可以直接查看有效期:
openssl x509 -in server.crt -noout -dates
返回结果类似:
notBefore=Aug 20 00:00:00 2026 GMT
notAfter=Nov 18 23:59:59 2026 GMT
其中:
notBefore:证书开始生效时间;notAfter:证书到期时间。
如果检查的是网站而不是本地证书文件,更应该使用 openssl s_client 检查服务器当前实际返回的证书。
因为服务器可能同时保存了新旧两张证书,本地证书文件的有效期并不能代表公网 HTTPS 当前使用的证书已经更新。
如何检查SSL证书域名是否匹配?
可以使用 OpenSSL 查看证书的 SAN:
openssl x509 -in server.crt -noout -text
找到:
X509v3 Subject Alternative Name:
DNS:example.com
DNS:www.example.com
DNS:api.example.com
这些 DNS 名称就是证书明确保护的域名。
例如访问:
https://api.example.com
而证书只包含:
DNS:example.com
DNS:www.example.com
那么 api.example.com 并没有被当前证书覆盖,浏览器可能出现:
NET::ERR_CERT_COMMON_NAME_INVALID
如果使用通配符证书,则还需要注意通配符的匹配范围。例如:
*.example.com
可以覆盖:
www.example.com
api.example.com
但不能直接覆盖:
example.com
a.api.example.com
具体选择单域名、多域名还是通配符证书,可以参考 SSL证书类型。
如何检测SSL证书链是否完整?
HTTPS 连接除了服务器证书,还涉及 CA 中间证书。
常见的信任关系为:
服务器证书
↓
中间CA证书
↓
根CA证书
↓
客户端信任库
服务器一般需要发送服务器证书和必要的中间 CA 证书,不需要把根证书作为服务器证书链的一部分发送给客户端。
可以通过 OpenSSL 查看服务器实际发送的证书:
openssl s_client \
-connect example.com:443 \
-servername example.com \
-showcerts
如果服务器只返回站点证书,没有提供必要的中间 CA 证书,就可能出现:
- 部分浏览器访问正常;
- 部分手机访问失败;
- 某些 Java 应用无法建立连接;
- API 客户端提示证书不受信任;
- SSL 检测工具提示证书链不完整。
如果确认是服务器部署问题,可以参考 怎么安装SSL证书 检查证书文件和中间证书配置。
SSL检测发现证书错误怎么办?
不同检测结果对应的处理方式并不一样。
证书已经过期
重新申请或续期证书,然后确认新证书已经部署到实际提供 HTTPS 服务的服务器。
如果前面还有 CDN、WAF 或负载均衡,还需要检查这些设备上的证书是否同步更新。
域名与证书不匹配
检查证书 SAN 是否包含当前访问域名。
例如访问:
api.example.com
但证书只有:
www.example.com
就需要更换包含正确域名的证书。
证书链不完整
检查 Web 服务器是否配置了完整的服务器证书和中间 CA 证书。
Nginx 等环境一般需要使用包含中间证书的 fullchain 文件,而不是只配置站点证书。
TLS握手失败
如果出现:
ERR_SSL_PROTOCOL_ERROR
或者:
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
需要进一步检查:
- TLS 版本;
- 密码套件;
- SNI;
- Web 服务器配置;
- CDN 配置;
- 负载均衡配置;
- 客户端兼容性。
复杂的 HTTPS 故障可以继续参考 修复SSL证书错误 进行排查。
SSL证书检测和TLS配置检测有什么区别?
两者经常一起出现,但检查对象并不完全相同。
SSL证书检测主要检查证书本身,例如:
- 有效期;
- 域名;
- SAN;
- Issuer;
- 公钥算法;
- 签名算法;
- 证书链。
TLS配置检测主要检查服务器建立加密连接时的实际配置,例如:
- TLS 1.2 / TLS 1.3;
- 密码套件;
- 密钥交换;
- SNI;
- 协议协商;
- 实际 TLS 握手结果。
因此,如果只是想确认“我的 SSL 证书有没有过期”,检查证书信息即可。
如果需要确认“网站 HTTPS 为什么连接失败”,则应该同时检查证书和 TLS 配置。
SSL证书检测适合哪些场景?
从实际运维工作来看,SSL 检测最常见的用途主要集中在证书生命周期和服务器变更之后。
| 场景 | 重点检查内容 |
|---|---|
| 新证书部署 | 域名、有效期、证书链 |
| 证书续期 | 新旧证书是否切换 |
| 更换服务器 | 证书、私钥、证书链 |
| CDN接入 | CDN实际返回的证书 |
| 负载均衡 | SNI与证书绑定 |
| 浏览器报SSL错误 | 证书、链、TLS握手 |
| 多域名部署 | SAN与SNI |
| 定期巡检 | 到期时间、TLS配置 |
对于多个域名和多台服务器,可以将检测过程纳入证书生命周期管理,定期检查实际公网服务,而不是只在证书到期后才发现问题。
常见问题 FAQ
Q:SSL证书检测工具可以检查证书是否过期吗?
A:可以。检测工具可以读取服务器当前返回的证书,并检查生效时间和到期时间。服务器存在新旧证书并存的情况下,应以公网 HTTPS 连接实际返回的证书为准。
Q:SSL证书检测为什么显示正常,但浏览器仍然提示不安全?
A:需要进一步检查客户端环境。可能涉及本地信任库、代理软件、HTTPS 流量拦截、浏览器缓存或网络环境。服务器端检测正常,并不能完全排除客户端环境问题。
Q:OpenSSL能检测SSL证书吗?
A:可以。OpenSSL 可以查看证书有效期、SAN、颁发机构和证书链,也可以通过 s_client 测试 TLS 握手,是排查 HTTPS 服务问题常用的命令行工具。
Q:SSL证书链不完整怎么解决?
A:检查服务器是否正确配置了必要的中间 CA 证书。服务器一般不需要发送根证书,但需要提供客户端构建完整信任链所需的中间证书。
SSL 检测的关键不是单纯判断“证书有没有”,而是确认公网服务器当前返回的证书是否正确,以及它能否与域名、证书链和 TLS 配置正常配合。
因此,证书申请、续期、服务器迁移、CDN切换或 HTTPS 故障排查后,都建议从公网实际连接结果进行验证。对于日常运维,则可以进一步建立证书到期监控,提前发现即将失效的证书。



京公网安备11010502031690号
网站经营企业工商营业执照
















