gpt4 book ai didi

python - 是否可以在 Python 中生成正确的 PKCS12 (.pfx) 文件?

转载 作者:太空狗 更新时间:2023-10-29 21:27:03 25 4
gpt4 key购买 nike

我需要在 python 中生成一个 PKCS12 文件,其中将包含自签名证书和私钥。我为此任务汇编了以下 python 代码:

import OpenSSL
key = OpenSSL.crypto.PKey()
key.generate_key( OpenSSL.crypto.TYPE_RSA, 1024 )
cert = OpenSSL.crypto.X509()
cert.set_serial_number(0)
cert.get_subject().CN = "me"
cert.set_issuer( cert.get_subject() )
cert.gmtime_adj_notBefore( 0 )
cert.gmtime_adj_notAfter( 10*365*24*60*60 )
cert.set_pubkey( key )
cert.sign( key, 'md5' )
open( "certificate.cer", 'w' ).write(
OpenSSL.crypto.dump_certificate( OpenSSL.crypto.FILETYPE_PEM, cert ) )
open( "private_key.pem", 'w' ).write(
OpenSSL.crypto.dump_privatekey( OpenSSL.crypto.FILETYPE_PEM, key ) )
p12 = OpenSSL.crypto.PKCS12()
p12.set_privatekey( key )
p12.set_certificate( cert )
open( "container.pfx", 'w' ).write( p12.export() )

这段代码创建了一个我可以在 Windows 中查看的 .cer 文件,它看起来是正确的。它还会创建一个“.pfx”文件,该文件旨在成为带有证书和相应私钥的“PKCS#12”容器——签署可执行文件所需的东西。不幸的是,如果我尝试在 Windows 上打开这个“.pfx”文件,它会失败并显示“文件无效”错误,并且通过命令行工具解析它也会失败:

certutil -asn container.pfx

由于文件中间的“解码错误”而失败。

是我在我的代码中做错了什么,还是 Python + OpenSSL 不打算在 Windows 下创建有效的 PKCS#12 文件?

附言我使用的是最新的 ActivePython 2.7 32 位发行版。

最佳答案

我有一个假设,您需要以二进制模式打开 container.pfx:

open( "container.pfx", 'wb' ).write( p12.export() )

关于python - 是否可以在 Python 中生成正确的 PKCS12 (.pfx) 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12456453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com