如何检查服务器上的 SSL 证书是否配置正确且未过期?(附 OpenSSL 常用检测命令)

完成证书部署并成功启动 Web 服务器后,运维人员还需要进行最后一道防线——验证测试。这不仅能确认网站是否真正实现了 HTTPS 加密,还能提前发现证书过期、配置错误或信任链缺失等隐患。掌握 OpenSSL 命令行工具,是每一位系统管理员的必备技能。

第一步:检查证书有效期与域名匹配
证书过期是导致浏览器拦截访问的最常见原因。您可以使用以下命令远程获取目标域名的证书有效期:
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates

执行后,终端会输出 notBefore(生效日期)和 notAfter(到期日期)。若当前时间晚于 notAfter,说明证书已过期。此外,还需检查证书绑定的域名(Subject Alternative Name, SAN)是否包含了您当前访问的域名,否则同样会触发安全警告。

第二步:验证证书链的完整性
证书链不完整会导致部分老旧设备或移动端浏览器提示“不受信任”。通过添加 -showcerts 参数,可以查看服务器返回的完整证书链:
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com -showcerts

在输出的 Certificate chain 部分,第 0 条应为您的服务器证书,第 1 条为中间证书。如果输出中仅包含服务器证书而缺失中间证书,您需要重新下载包含完整证书链的文件(如 fullchain.pem)并重新配置 Web 服务器。

第三步:测试 TLS 协议版本与加密套件
为了确保通信的安全性,建议验证服务器是否已禁用不安全的旧版协议(如 TLSv1.0/1.1)。您可以使用以下命令测试 TLS 1.3 握手:
openssl s_client -connect yourdomain.com:443 -tls1_3

如果握手成功,输出中会显示 Protocol : TLSv1.3 以及双方协商使用的强加密套件(如 ECDHE-RSA-AES256-GCM-SHA384)。若提示 wrong version number 或 no protocols available,则需检查 Nginx/Apache 中的 ssl_protocols 配置。

第四步:利用浏览器与在线工具进行交叉验证
除了命令行,最直观的验证方式是使用浏览器访问 https://yourdomain.com,点击地址栏的安全锁图标,查看“连接是安全的”以及证书的颁发机构和有效期。对于更高标准的安全审计,强烈推荐使用业界权威的在线检测工具(如 Qualys SSL Labs 的 SSL Server Test)。只需输入域名,该工具就会从外部视角对您的证书链、协议支持、加密套件进行全面打分,并指出所有潜在的安全配置问题。

通过“命令行查有效期 -> 验证证书链 -> 测试协议版本 -> 在线综合审计”的标准化流程,您可以确保服务器上的 SSL 证书始终处于最佳的安全运行状态。

标签: none

评论已关闭

SSL证书 SSL证书购买 SSL证书申请 SSL证书价格 泛域名证书 通配符证书 通配符SSL证书 https证书 便宜SSL证书 便宜证书 SSL证书多少钱 申请SSL 域名SSL sectigo证书