Openssl-如何检查证书是否被吊销

Openssl-如何检查证书是否被吊销,openssl,Openssl,使用OpenSSL库,如何检查对等证书是否被吊销。 我在谷歌上搜索到: x509 Cerfit证书包含一组crl分发点,即一组URL 从这些URL下载crl crl包含已吊销证书的序列号 如果对等证书序列号在crl列表中,则该序列号将被撤销 我使用什么OpenSSL API来实现这一点?此外,这是检查证书是否被吊销的正确方法吗?检查此线程: X509_存储支持CRL处理。您可以使用PEM_read_bio_X509_CRL命令从X509证书中提取CRL,该命令未在链接中解释。不幸的是,Open

使用OpenSSL库,如何检查对等证书是否被吊销。 我在谷歌上搜索到:

  • x509 Cerfit证书包含一组crl分发点,即一组URL
  • 从这些URL下载crl
  • crl包含已吊销证书的序列号
  • 如果对等证书序列号在crl列表中,则该序列号将被撤销
  • 我使用什么OpenSSL API来实现这一点?此外,这是检查证书是否被吊销的正确方法吗?

    检查此线程:


    X509_存储支持CRL处理。您可以使用PEM_read_bio_X509_CRL命令从X509证书中提取CRL,该命令未在链接中解释。

    不幸的是,OpenSSL中的CRL验证API不是很高级,因此您需要代码自己执行许多操作

    有关所需内容的简要概述:

    • 从证书检索CRL URL以从CRL分发点扩展验证。OpenSSL提供了证书解析功能,但没有简单的CRL分发点访问器
    • 从URL下载CRL。OpenSSL没有实现这一点,也没有实现任何形式的缓存
    • 验证CRL(签名、颁发者DN、有效期、主题密钥标识符等)。OpenSSL提供了不同的底层功能
    • 验证要检查的证书的序列号是否在CRL中
    当然,这应该在检查证书本身是否“有效”(即证书由受信任(或值得信任)的CA颁发)、是否具有正确的使用扩展以及证书(及其信任链)是否在其有效期内)之后进行。OpenSSL有一些低级和中级功能来帮助实现这一点

    对于完全通用的实现,可能会使事情复杂化的一些附加细节:

    • 某些证书可能使用OCSP而不是CRL
    • 某些证书将LDAP DNs或URL作为分发点
    • 某些CRL由委托CRL签署人签署
    • 增量CRL或分区CRL可能会使实现复杂化(尤其是w.r.t.缓存)
    • 等等
    描述了完整的PKIX验证算法。您不必实现所有功能,但检查您是否忘记了重要的内容是一个很好的参考。您应该查看
    mod_ssl
    (包含在Apache
    httpd
    服务器中)模块,了解本地检查CRL并实现OCSP检查的实现

    如果您事先知道您信任哪个CA(从安全角度来看,这样更好),那么您可以有一个cron作业来下载和更新CRL。这将避免您在程序中执行有关查找/下载/缓存CRL的部分。

    可能重复的