pyOpenSSL中的PKCS#12支持已弃用
pkcs#12
我想从 cert_name.pfx 中获取到期日期,例如:
Get .pfx Cert File Expiration with pyOpenSSL
from OpenSSL import crypto
from cryptography import x509
from cryptography.hazmat.backends import default_backend
pkcs12 = crypto.load_pkcs12(open('cert.pfx', "rb").read(), '1234')
pem_data = crypto.dump_certificate(crypto.FILETYPE_PEM, pkcs12.get_certificate())
cert = x509.load_pem_x509_certificate(pem_data, default_backend())
print(cert.not_valid_after)
我收到以下错误:
- 弃用警告:不推荐使用 pyOpenSSL 中的 PKCS#12 支持。您应该在密码学中使用 API。
- 弃用警告:不再接受密码的 str ,请使用字节。来自这一行:
第二个错误消失后 ....read(), b'1234') 我添加了 'b'
如果我可以再使用它:crypto.load_pkcs12(open('cert.pfx', "rb").read(), '1234')
在读取 pkcs12 格式证书的到期日期时,我可以使用什么代替?(使用python 3.8)
回答
使用cryptography.hazmat.primitives.serialization.pkcs12.load_key_and_certificates。
例子:
from cryptography.hazmat.primitives.serialization import pkcs12
with open("cert.pfx", "rb") as f:
private_key, certificate, additional_certificates = pkcs12.load_key_and_certificates(f.read(), b"1234")
print(certificate.not_valid_after)