如何/如何使用python和cryptography模块生成PKCS#12文件?
使用上述模块为私钥生成.pem文件的内容非常容易:
keyPEMBytes = privateKey.private_bytes(
encoding=serialization.Encoding.PEM,format=serialization.PrivateFormat.TraditionalOpenSSL,encryption_algorithm=serialization.NoEncryption())
也很容易为相关证书生成.cer / .pem文件的内容:
certBytes = certificate.public_bytes(encoding=serialization.Encoding.PEM)
但是我需要它们(和它们的链)聚集在单个.p12(PKCS12文件)上.所述模块记录了how to parse/consume PKCS12 formats,但是关于如何生成它们却一无所获(我能找到).
我对PKI东西的理解是偶然的,所以也许我只是没有在文档中搜索正确的关键字?
我可以使用以下命令在Linux上的命令行中创建.p12文件:
openssl pkcs12 -export -out myIdentity.p12 -inkey myPrivKey.pem -in myCert.crt -certfile myCertChain.crt
所以我可以用subprocess / cmd包装这样的调用,并用tempfiles / pipes弄乱.我希望将其全部保留在内存/ python中.
我应该考虑使用其他的python TLS库吗?
最佳答案
如您所述,加密技术可以使用load_key_and_certificates解析PKCS12(至少99.99%的人使用的子集),但是当前不支持序列化到PKCS12.
我是该项目的核心开发人员之一,总的来说,密码学的功能集由用户提出问题来解释,这些问题解释了他们的用例和对特定功能的需求.我建议在跟踪器上写一些东西进行讨论.听起来您的需求将由一个大致如下的简单API满足:
from cryptography.hazmat.primitives.serialization.pkcs12 import generate_pkcs12
pem_pkcs12 = generate_pkcs12(
BestAvailableEncryption(b"somepassword"),key,[cert1,cert2]
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。