首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyopenssl不能设置x509证书[cert必须是X509实例]

pyopenssl不能设置x509证书[cert必须是X509实例]
EN

Stack Overflow用户
提问于 2019-11-04 06:58:40
回答 1查看 1.3K关注 0票数 2

我使用pyopenssl,我希望使用他们的p12对象apis生成一个crypto.PKCS12文件。

因此,该证书值从API中获取并保存在文件中,如下所示:

回波-e“-证书文本,带开始和结束-”> cert.crt

它创建了这个文件,当我在命令下面运行时,有一个正确的输出,即使我在线验证它,它也显示了所有的优点:

openssl x509 -in cert.crt -text -noout

现在的问题是,当使用下面的方法将证书设置为PKCS12对象时,会出现一个错误:

代码语言:javascript
复制
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实例”)

我不明白库为什么抱怨证书。这里有我遗漏的东西吗?

EN

回答 1

Stack Overflow用户

发布于 2019-11-04 14:30:10

在将证书设置为X509容器之前,需要将证书作为PKCS12对象加载。

所以首先你应该:

  • 将证书文件的内容读入缓冲区
  • 使用X509从缓冲区创建证书

其结果可能如下:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58688558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档