我知道可以使用OpenSSL或M2Crypto来读取Python中的证书,正如在How can I retrieve the TLS/SSL peer certificate of a remote host using python?中所详细解释的那样,但是我希望能够使用非可信证书来执行同样的操作。在
所谓非信任,是指我(例如)刚刚生成的证书,并将csr输出粘贴到python函数中。在
以下是我如何生成企业社会责任:
openssl req -new -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr
并使用域.csr在之前的S.O.问题中。在
正如所料,这不起作用。为了更快,使用Openssl执行同样的操作会导致相同的错误:
^{pr2}$unable to load certificate 139698977908608:error:0906D06C:PEM routines:PEM_read_bio:no start >line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
期望:可信证书是这里的关键问题。在
我该怎么办?在
谢谢你的帮助!在
更新:通过搜索更多信息,我读到如果私钥在这个S.O答案https://stackoverflow.com/a/12312994/330867中的cert(aka pem)中,这是可行的,但是我要实现的是一个系统,可以从来自其他人而不是我的证书中提取信息。我很确定“其他人”不会想分享他们的私钥,所以我还是被卡住了。有什么想法吗?在
更新2:x509和req证书之间似乎存在差异。前面用命令生成的是一个req,如前所述。在
现在我可以用第一个So链接来读取x509证书,但是如何读取python中的req证书呢?在
好吧,我找到了我的答案,我相信它会帮助别人!在
所以,“req”证书和x509证书之间有一个重要的区别!在
在x509中,私钥也包含在文件中!在
因此,在下面,我将展示如何使用REQ和x509类型的证书生成证书并在Python中读取它。在
使用“req”证书:
要生成它:
阅读它:
^{pr2}$使用“x509”证书:
要生成它:
阅读它:
就这样!在
区别在于如何在
OpenSSL.crypto
中加载证书:load_certificate_request()
load_certificate()
就这么简单;)
相关问题 更多 >
编程相关推荐