我使用pyopenssl,我希望使用他们的p12对象apis生成一个crypto.PKCS12文件。
因此,该证书值从API中获取并保存在文件中,如下所示:
回波-e“-证书文本,带开始和结束-”> cert.crt
它创建了这个文件,当我在命令下面运行时,有一个正确的输出,即使我在线验证它,它也显示了所有的优点:
openssl x509 -in cert.crt -text -noout
现在的问题是,当使用下面的方法将证书设置为PKCS12对象时,会出现一个错误:
from OpenSSL import crypto
p12 = crypto.PKCS12()
p12.set_certificate("/home/someuser/Documents/path/to/cert.crt")然后抛出一个错误:
文件"/home/someuser/.local/lib/python3.6/site-packages/OpenSSL/crypto.py",第2429行,在set_certificate raise中(“cert必须是X509实例”)
我不明白库为什么抱怨证书。这里有我遗漏的东西吗?
发布于 2019-11-04 14:30:10
在将证书设置为X509容器之前,需要将证书作为PKCS12对象加载。
所以首先你应该:
其结果可能如下:
from OpenSSL import crypto
with open("/home/someuser/Documents/path/to/cert.crt", "r") as file:
data = file.read()
x509 = crypto.load_certificate(crypto.FILETYPE_PEM, data);
p12 = crypto.PKCS12()
p12.set_certificate(x509)https://stackoverflow.com/questions/58688558
复制相似问题