使用OpenSSL库,如何检查对等证书是否被撤销。 从我用Google搜索的内容:
我使用哪些OpenSSL API来完成此任务?另外,这是检查证书是否被撤销的正确方法吗?
答案 0 :(得分:16)
不幸的是,OpenSSL中的CRL验证API不是很高级,因此您可以自己执行许多操作。
简要概述所需内容:
当然,这应该在检查证书本身是“有效”之后完成,因为它是由受信任(或值得信赖的)CA颁发的,它具有正确的使用扩展,并且它(以及它的信任) chain)在其有效期内。 OpenSSL有一些低级和中级功能可以帮助解决这个问题。
一些额外的细节可能使完全通用的实现变得复杂:
RFC 5280描述了完整的PKIX验证算法。您不必实现所有内容,但它是一个很好的参考,可以检查您是否忘记了重要的事情。您应该查看mod_ssl
(包含在Apache httpd
服务器)模块中,以获取在本地检查CRL并实现OCSP检查的实现。
如果您事先知道您信任哪些CA(从安全角度来看它更好),那么您可以下载并更新CRL的cron作业。这将使您无法实现有关在程序中查找/下载/缓存CRL的部分。
答案 1 :(得分:1)
检查此主题:
Does OpenSSL automatically handle CRLs (Certificate Revocation Lists) now?
X509_STORE支持CRL处理。您可以使用PEM_read_bio_X509_CRL命令从X509证书中提取CRL,但未在链接中说明。