微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pyOpenSSL 中的 PKCS#12 支持已弃用

如何解决pyOpenSSL 中的 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)

我收到以下错误

  1. 弃用警告:pyOpenSSL 中的 PKCS#12 支持已弃用。您应该在密码学中使用 API。
  2. 弃用警告:不再接受密码的 str,请使用字节。来自这一行:

第二个错误消失后 ....read(),b'1234') 我添加了 'b'

如果我可以再使用它: crypto.load_pkcs12(open('cert.pfx','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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。