【发布时间】:2023-03-21 04:21:01
【问题描述】:
我目前正在尝试验证我从 URL 下载的 CRL 是由相应证书颁发机构签名的有效文件。
使用 OpenSSL,您可以这样做:
https://www.openssl.org/docs/manmaster/apps/crl.html
CertEurope 颁发的 CRL 示例:
openssl crl -in certeurope_v3.crl -inform der -CAfile certeurope_advanced_v3.cer
(CRL文件和CA文件从这个网址下载:https://www.certeurope.fr/chaine-de-confiance)
- CA 文件: https://www.certeurope.fr/reference/certeurope_advanced_v3.cer
- CRL 文件:https://www.certeurope.fr/reference/certeurope_v3.crl
不幸的是,OpenSSL 的命令行显示错误:
“获取 CRL 颁发者证书时出错”
关于此链接:https://www.openssl.org/docs/manmaster/apps/verify.html 原因似乎是这样的:
20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY:无法获取本地 颁发者证书 找不到颁发者证书:this 如果不可信证书的颁发者证书不能 找到了。
这是因为 CA 文件不是用于签署 CRL 文件的文件吗?还有其他方法可以验证我下载的 CRL 文件是否有效?
【问题讨论】:
-
是的,CRL 由该证书签名,但该证书链接(如 CRL)是 DER 和
-CAfile(和-CApath)需要 PEM。将其转换为openssl x509 -in certeurope_advanced_v3.cer -inform der -out certeurope_advanced_v3.pem并改用它。但是使用网站上的证书来验证网站上的 CRL 并不是很安全;如果该网站是欺诈性的或被盗用的,它们实际上都可能是无效的。 -
谢谢,它有效!您能回答我的问题,以便我将其标记为已解决吗?