【发布时间】:2010-05-26 13:37:43
【问题描述】:
使用 OpenSSL 库,我如何检查对等证书是否被吊销。 根据我的谷歌搜索:
- x509 证书包含一组crl分发点,即一组url
- 从这些 url 下载 crl
- crl 包含已撤销证书的序列号
- 如果对等证书序列号在 crl 列表中,则将其撤销
我使用哪些 OpenSSL API 来完成此任务?另外,这是检查证书是否被吊销的正确方法吗?
【问题讨论】:
标签: openssl
使用 OpenSSL 库,我如何检查对等证书是否被吊销。 根据我的谷歌搜索:
我使用哪些 OpenSSL API 来完成此任务?另外,这是检查证书是否被吊销的正确方法吗?
【问题讨论】:
标签: openssl
很遗憾,OpenSSL 中的 CRL 验证 API 不是很高级,所以您需要自己进行很多操作。
关于所需内容的简要概述:
当然,这应该在检查证书本身是否“有效”(即它是由受信任的(或可信赖的)CA 颁发的,它具有正确的使用扩展,并且它(连同它的信任)链)在其有效期内。 OpenSSL 有一些低级和中级功能可以帮助解决这个问题。
一些额外的细节可能会使完全通用的实现变得复杂:
RFC 5280 描述了完整的 PKIX 验证算法。您不必实现所有内容,但它是一个很好的参考,可以检查您是否忘记了一些重要的事情。您应该查看 mod_ssl(包含在 Apache httpd 服务器中)模块以了解在本地检查 CRL 并实施 OCSP 检查的实现。
如果您事先知道您信任哪些 CA(从安全角度来看更好),那么您可以有一个 cron 作业来下载和更新 CRL。这将使您免于在程序中实施有关定位/下载/缓存 CRL 的部分。
【讨论】:
检查此线程:
Does OpenSSL automatically handle CRLs (Certificate Revocation Lists) now?
X509_STORE 支持 CRL 处理。您可以使用 PEM_read_bio_X509_CRL 命令从 X509 证书中提取 CRL,链接中没有说明。
【讨论】: