在Ubuntu系统中,OpenSSL是验证证书有效性、完整性及信任关系的核心工具。以下是具体验证步骤,覆盖基础检查、链验证、域名匹配、吊销状态等常见场景:
大多数Ubuntu版本预装OpenSSL,可通过以下命令确认版本:
openssl version
若未安装,执行以下命令安装:
sudo apt update && sudo apt install openssl
通过以下命令查看证书的有效期、颁发者、主题、签名算法等详细信息:
openssl x509 -in certificate.crt -text -noout
notBefore、结束日期notAfter):openssl x509 -in certificate.crt -noout -dates
openssl x509 -in certificate.crt -noout -issuer
openssl x509 -in certificate.crt -noout -subject
若证书由中间CA签发,需合并服务器证书+中间证书+根证书为完整链(顺序:服务器→中间→根),再验证链的可信度:
# 合并证书链(示例文件名:server.crt、intermediate.crt、root.crt)
cat server.crt intermediate.crt root.crt > fullchain.crt
# 验证链(指定根证书作为信任锚)
openssl verify -CAfile root.crt fullchain.crt
fullchain.crt: OK,说明链有效;若出现unable to get local issuer certificate等错误,需检查中间证书是否缺失或路径错误。检查证书是否覆盖目标域名(避免“域名不匹配”错误):
openssl x509 -in certificate.crt -noout -subjectAltName | grep DNS
DNS:example.com、DNS:www.example.com);若为通配符证书,会显示DNS:*.example.com。通过SHA-256指纹确认证书未被篡改(常用于比对证书一致性):
openssl x509 -in certificate.crt -noout -fingerprint -sha256
SHA256 Fingerprint=12:34:56:...:AB:CD,可与预期指纹对比。若证书可能被吊销,需通过**OCSP(在线状态协议)或CRL(吊销列表)**验证:
openssl ocsp -issuer intermediate.crt -cert server.crt -url http://ocsp.example.com
Response verify OK且状态为good,说明证书未被吊销。openssl crl -in crl.pem -noout -text # 查看吊销列表
openssl x509 -in server.crt -noout -serial # 获取证书序列号
若需验证网站证书(而非本地文件),可通过openssl s_client获取并验证:
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -outform PEM > website.crt
website.crt,后续可使用前述命令(如openssl verify、openssl x509 -text)进行验证。通过以上步骤,可全面验证Ubuntu系统中OpenSSL证书的有效性、信任关系及安全性。若遇到错误(如unable to verify the first certificate),需检查证书链是否完整或信任锚是否正确。