在 Ubuntu 上使用 OpenSSL 验证证书,可以通过以下步骤完成。假设你有一个证书文件(例如 certificate.crt),并且你想验证它的有效性。
检查证书的有效期: 使用以下命令查看证书的有效期:
openssl x509 -in certificate.crt -noout -dates
这将显示证书的生效日期和到期日期。
验证证书是否被信任: 你可以使用 OpenSSL 查看证书的颁发者(issuer)和主题(subject),以确定它是否由受信任的证书颁发机构(CA)签发。
openssl x509 -in certificate.crt -noout -issuer
openssl x509 -in certificate.crt -noout -subject
确保证书的颁发者是一个受信任的根 CA。
检查证书链: 如果证书是由中间 CA 签发的,你需要确保证书链完整。你可以使用以下命令查看证书链:
openssl s_client -connect example.com:443 -showcerts
替换 example.com 为你想要验证的域名。这将显示与该域名关联的所有证书,包括中间证书。
验证证书的撤销状态: 使用 Certificate Revocation List (CRL) 或 Online Certificate Status Protocol (OCSP) 检查证书是否被撤销。
CRL 检查:
openssl crl -in crl.pem -noout -text
确保你的证书不在 CRL 列表中。
OCSP 检查:
openssl ocsp -issuer issuer.crt -cert certificate.crt -url http://ocsp.example.com
替换 issuer.crt 为颁发者的证书文件,certificate.crt 为你要检查的证书文件,http://ocsp.example.com 为 OCSP 服务器的 URL。
使用 OpenSSL 验证证书签名: 你可以使用 OpenSSL 验证证书的签名是否有效:
openssl verify -CAfile ca-bundle.crt certificate.crt
替换 ca-bundle.crt 为包含受信任根 CA 证书的文件。
通过以上步骤,你可以全面验证一个证书的有效性和信任状态。