怎么用OpenSSL命令快速检查SSL证书有效期和证书链?
想要快速查看 SSL 证书的有效期和证书链,只需在命令行输入特定的 OpenSSL 组合命令即可:检查在线证书使用 openssl s_client 结合 x509 过滤,检查本地文件直接使用 openssl x509 -text -noout。
如何检查在线 SSL 证书的有效期和链?
结论:使用 openssl s_client 命令连接目标服务器并配合 x509 命令提取信息,即可获取证书的过期时间、颁发者和完整的证书链。对于 HTTPS 网站请务必使用 -servername 参数。
具体操作步骤如下:
- 打开终端(Mac/Linux)或命令提示符(Windows)。
- 输入以下命令替换
example.com为你的目标域名:
openssl s_client -servername example.com -connect example.com:443 -showcerts | openssl x509 -noout -dates -subject -issuer
- 参数说明:
* -servername example.com:指定服务器名称,用于 SNI(服务器名称指示)验证,确保证书匹配。
* -connect example.com:443:连接到服务器的 443 端口。
* -showcerts:显示服务器返回的所有证书,包括服务器证书和中间证书。
* |:管道符,将前一个命令的输出传递给后一个命令。
* openssl x509 -noout ...:提取并格式化显示证书信息,不输出原始 PEM 头部。
输出结果中的 notAfter 字段即为证书的过期时间。
如何查看本地证书文件的有效期和链?
结论:使用 openssl x509 命令配合 -text 和 -noout 参数,可以直接解析本地保存的证书文件,显示包含有效期在内的所有详细信息。
具体操作步骤如下:
- 确保你手头有证书文件(如
.crt或.pem)。 - 在终端输入命令:
openssl x509 -in cert.pem -text -noout
- 参数说明:
* -in cert.pem:指定输入的证书文件路径。
* -text:以文本形式输出证书的所有字段,包括有效期、颁发者、主题、公钥算法等。
* -noout:禁止输出证书的 PEM 编码头部和尾部,使输出更整洁。
在输出的 Validity 段落中,你会看到 Not Before(生效日期)和 Not After(过期日期)。
如何验证证书链是否完整?
结论:使用 openssl verify 命令并指定中间证书文件,可以检测证书链的完整性,确保客户端能够成功验证证书。
具体操作步骤如下:
- 准备服务器证书和中间证书文件(通常合并为一个 chain.pem 文件)。
- 输入验证命令:
openssl verify -CAfile chain.pem cert.pem
- 参数说明:
* -CAfile chain.pem:指定包含根证书和中间证书的证书文件路径。
* cert.pem:待验证的终端实体证书。
如果输出显示 cert.pem: OK,则说明证书链完整且有效;如果报错提示 unable to get local issuer certificate,则说明缺少中间证书或路径配置错误。
掌握这几个命令能帮助运维人员和站长在几分钟内完成证书状态的快速自检,无需依赖第三方工具。<!--TAGS-->OpenSSL,SSL证书,证书检查,运维工具,网络安全<!--TAGS-->
转载请注明出处,版权归原作者所有。