用python从pfx中提取相关信息生产key,crt,cert,ca文件
时间: 2024-02-29 08:55:52 浏览: 187
文件信息提取python程序
您可以使用 Python 的 pyOpenSSL 模块来从 pfx 文件中提取相关信息并生成 key、crt、cert 和 ca 文件,具体代码如下:
```python
from OpenSSL import crypto
# 读取 pfx 文件
with open("yourdomain.pfx", "rb") as f:
pfx = f.read()
# 解析 pfx 文件
p12 = crypto.load_pkcs12(pfx, "password")
# 生成私钥 key 文件
key = p12.get_privatekey()
with open("yourdomain.key", "wb") as f:
f.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, key))
# 生成证书 crt 文件
cert = p12.get_certificate()
with open("yourdomain.crt", "wb") as f:
f.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert))
# 生成证书链文件 ca.crt
ca_cert = p12.get_ca_certificates()
if ca_cert:
with open("ca.crt", "wb") as f:
for cert in ca_cert:
f.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert))
# 生成证书文件 cert.pem
with open("cert.pem", "wb") as f:
f.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert))
if ca_cert:
for cert in ca_cert:
f.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert))
# 生成证书链文件 chain.pem
if ca_cert:
with open("chain.pem", "wb") as f:
for cert in ca_cert:
f.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert))
```
这段代码会生成 yourdomain.key、yourdomain.crt、ca.crt、cert.pem 和 chain.pem 五个文件,其中 yourdomain.key 为私钥文件,yourdomain.crt 为证书文件,ca.crt 为证书链文件,cert.pem 为证书和证书链的组合文件,chain.pem 为证书链文件。
阅读全文