使用CA文件和CRL文件校验客户端证书时报unable to get certificate CRL错误
OpenSSL校验客户端证书报unable to get certificate CRL问题解决
报错根因
你执行的命令中包含-crl_download参数,该参数会强制OpenSSL从客户端证书内置的*CRL分发点(CDP)*字段自动拉取CRL,不会使用你本地存放的test.crl文件。OpenSSL无法拉取到符合要求的CRL时,就会抛出该错误。
解决方案
场景1:使用本地已有的test.crl做校验(推荐,符合你当前的文件准备情况)
调整命令参数,删除自动下载CRL的配置,指定本地CRL文件路径即可,正确命令如下:
openssl verify -extended_crl -crl_check -CAfile ca.cert.pem -CRLfile test.crl -verbose client.cert.pem
参数调整说明:
- 移除
-crl_download参数,关闭自动拉取CRL逻辑 - 新增
-CRLfile test.crl参数,指定你本地已有的CRL文件 - 你当前没有多级证书链,可将
-crl_check_all替换为-crl_check,仅校验客户端证书的吊销状态即可
注意:本地的
test.crl必须由签发客户端证书的同一个CA签发,否则即使指定路径也会校验失败。
场景2:需要使用自动下载CRL模式
先确认客户端证书内置的CRL分发点地址可正常访问,执行以下命令查看证书CDP配置:
openssl x509 -in client.cert.pem -text -noout | grep -A 4 'CRL Distribution Points'
确保输出的地址网络可达、可正常下载CRL文件,再运行你原来的命令即可。
内容的提问来源于stack exchange,提问作者karlos
相关产品推荐
相关产品推荐

