OpenSSL无法验证CRL求助:无法获取证书吊销列表
问题原因
OpenSSL 1.1.1k的openssl verify命令默认不会自动通过CRL分发点(CDP)URL下载CRL,-crl_check参数仅会查找本地已加载的CRL文件,不会发起HTTP/HTTPS请求获取远程CRL,这就是strace显示只查本地文件、报错无法获取CRL的根本原因。
解决方法
方法1:手动下载CRL并指定验证
- 先确认叶子证书的CRL分发点:
openssl x509 -in leaf.pem -noout -text | grep -A 2 "CRL Distribution Points"
- 用curl下载CRL到本地(替换为实际CDP地址):
curl http://crl.example.com/ca.crl -o leaf_crl.pem
- 加载CA证书链和本地CRL完成验证:
openssl verify -CAfile chain.pem -crl_check -CRLfile leaf_crl.pem leaf.pem
注:chain.pem需按「中间CA在前、根CA在后」的顺序拼接根CA与中间CA证书
方法2:配置OpenSSL启用自动CRL获取
OpenSSL 1.1.1支持通过配置开启自动CRL下载,但默认未启用:
- 编辑OpenSSL配置文件(通常为
/etc/pki/tls/openssl.cnf),添加以下配置段:
[openssl_init] ssl_conf = ssl_sect [ssl_sect] system_default = system_default_sect [system_default_sect] CRLDP = 1
- 验证时指定CA证书链并启用全链CRL检查:
openssl verify -CAfile chain.pem -crl_check_all leaf.pem
注:RHEL 8.8的FIPS模式对配置有严格要求,需确认该配置符合FIPS规范,且服务器能正常访问CDP URL
关键注意点
- RHEL 8.8的OpenSSL 1.1.1k FIPS模式下,非默认配置可能受限,优先推荐方法1手动指定CRL
- 若CRL为DER格式,需先转换为PEM格式再使用:
openssl crl -inform DER -in leaf_crl.crl -out leaf_crl.pem
- 必须确保CA证书链完整,
chain.pem需包含所有上级CA证书
内容的提问来源于stack exchange,提问作者tot19
相关产品推荐
相关产品推荐

