python - 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)
我收到以下错误:
- 弃用警告: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)
推荐阅读
- python - 如何计算 Pandas 数据框中列中唯一元素的数量
- acumatica - 通过基于合同的 REST API 查询带有感叹号的自定义字段时出现语法错误
- reactjs - kotlin 多平台 + 反应
- python - 如果可以获取 Spark 中的分区数,为什么无法确定数据帧中的分区?
- android - 带有 react-native 的 Firebase 中的“auth/app-not-authorized”
- python - 具有固定和动态长度的 Python 拆分输出列
- python - 是否可以在后端编写 C# 代码并将结果发送回 dart?
- git - GitHub 离开 master
- vue.js - 在 nuxt/vue 中来自 apollo 的数据发生变化后,子元素不更新道具
- ssl - 如何为覆盖父域的三节点服务器域创建 tls 证书?