在python中读取证书(.crt)和密钥(.key)文件

Ash*_*aya 7 python pyopenssl python-jira

因此,我使用 JIRA-Python 模块连接到我公司的 JIRA 实例,它要求我为此传递证书和密钥。但是,使用 OpenSSL 模块,我无法读取本地证书和密钥来将其传递给请求。

阅读代码如下

import OpenSSL.crypto 
c = open('/Users/mpadakan/.certs/mpadakan-blr-mpsot-20160704.crt').read()
cert = OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_PEM, c)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

Traceback (most recent call last):
File "flaskApp.py", line 19, in <module>
cert = OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_PEM, c)
TypeError: must be X509, not str
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何将本地 .crt 和 .key 文件读入 x509 对象吗?

小智 3

@can-ibanoglu 是对的:

import OpenSSL.crypto 
cert = OpenSSL.crypto.load_certificate(
    OpenSSL.crypto.FILETYPE_PEM, 
    open('/tmp/server.crt').read()
)

>>> cert
<OpenSSL.crypto.X509 object at 0x7f79906a6f50>
Run Code Online (Sandbox Code Playgroud)