所以我使用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)
我得到的错误是
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
有人可以告诉我如何将我的本地.crt和.key文件读入x509对象吗?
答案 0 :(得分:0)
.crt
文件中的哪种格式。
是吗:
-----BEGIN CERTIFICATE-----
MI
字符\x30
字节开头的二进制数据?在前两种情况下有PEM格式,但在第二种情况下你缺少凝视线,只需添加它以获得正确的PEM文件或使用base64
将文件转换为二进制并获得第三种情况。
在第三种情况下,您有DER格式,因此要加载它,您应该使用OpenSSL.crypto.FILETYPE_ASN1
答案 1 :(得分:0)
@ 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>