使用 OpenSSL 解析 CRL

Parsing CRL using OpenSSL

使用下面的代码片段我可以从 CRL 证书中获取 CRL 对象:

import OpenSSL

with open('/Users/goutamdas/Desktop/Certificate/My_Certs/crl_ocsp.pem', 'r') as _crl_file:
    crl = "".join(_crl_file.readlines())
print(crl)

crl_object = OpenSSL.crypto.load_crl(OpenSSL.crypto.FILETYPE_PEM, crl)
print("obj: ", crl_object)

现在我想从这个 CRL 文件中解析以下 2 个日期,看起来 OpenSSL 没有提供任何相关的提取方法。任何建议我如何做到这一点。

    Last Update: Sep 17 18:01:34 2018 GMT
    Next Update: Oct 17 18:01:34 2018 GMT

通过 pyopenssl 公开的 类 是有限的,您通常最好从 cryptography module, which is used under the hood. For example, for CRLs, you can get access to the class cryptography.x509.CertificateRevocationList, via the to_cryptography() method documented here 切换到更强大的 类。它公开了您正在寻找的属性。继续您的操作:

ccrl_object = crl_object.to_cryptography()
print(ccrl_object.last_update)
print(ccrl_object.next_update)

产生类似于

的东西
2005-02-06 12:00:00
2005-02-05 12:00:00