使用pyOpenSSL获取.pfx证书文件到期

问题描述 投票:1回答:1

我正在尝试使用pyOpenSSL来检查客户端需要与我的应用程序一起使用的.pfx文件的到期时间。我们向客户颁发证书,并且每两年到期一次。我知道在命令行中使用openssl,通过转换为.pem然后在生成的.pem文件上运行'-noout -enddate'。

客户端很可能没有安装openssl,所以我想尽可能使用该库。我如何检查.pfx到期日期?我已经加载了证书,但不知道如何A)转换为.pem文件(如果我需要)和B)检查该.pem文件(或编码字符串)的到期时间。

谢谢!

至今:

import OpenSSL

from OpenSSL.crypto import *
cert_path = 'C:\\Clients\\Omega\\bos.omegaadv.gtssloader.pfx'
p12 = load_pkcs12(open(cert_path, 'rb').read(), 'globallink')
x = p12.get_certificate()

print(OpenSSL.crypto.dump_certificate(FILETYPE_PEM, p12.get_certificate())) 

代码在这里

python openssl pyopenssl
1个回答
0
投票

之后,您需要转换为x509,您可以通过访问属性not_valid_after来检索到期日期

我使用库加密进行转换

试试吧:

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) 

输出:2019-08-03 19:35:19

© www.soinside.com 2019 - 2024. All rights reserved.