Python OpenSSL加密错误:[(';PEM例程';';PEM读取&#生物';&#无起始行';)]

Python OpenSSL加密错误:[(';PEM例程';';PEM读取&#生物';&#无起始行';)],python,openssl,certificate,Python,Openssl,Certificate,尝试读取证书时出现以下错误: OpenSSL.crypto.Error: [('PEM routines', 'PEM_read_bio', 'no start line')] 运行OpenSSL.crypto.load\u证书(文件类型\u PEM,文件名)时。我做了一些研究,但没有找到一个具体的问题的答案 我尝试检查文件是否存在,并返回True,但加载证书只会引发上述错误 此外,当在终端上执行.pem文件中的openssl X509时,它就像一个符咒 file.pem如下所示: -----

尝试读取证书时出现以下错误:

OpenSSL.crypto.Error: [('PEM routines', 'PEM_read_bio', 'no start line')]
运行
OpenSSL.crypto.load\u证书(文件类型\u PEM,文件名)
时。我做了一些研究,但没有找到一个具体的问题的答案

我尝试检查文件是否存在,并返回
True
,但加载证书只会引发上述错误

此外,当在终端上执行.pem文件中的openssl X509时,它就像一个符咒

file.pem如下所示:

-----BEGIN CERTIFICATE-----
<<sensitive data>>
-----END CERTIFICATE-----
----开始证书-----
-----结束证书-----
它似乎是有效的,因为我能够在终端上执行基本的
openssl
操作。如果有帮助的话,我正在运行CentOS 7

有什么想法吗

谢谢

根据,
load\u certificate()
获取包含证书的缓冲区(字符串可以),而不是文件名

您需要做:

with open(filename, "r") as my_cert_file:
    my_cert_text = my_cert_file.read()
    cert = load_certificate(FILETYPE_PEM, my_cert_text)

您的PEM文件是否在base64部件之前包含“-----开始证书------”或“-----开始X509证书------”行?也许您可以共享您的PEM内容-如果PEM是敏感的,请删除base64的第一行以外的所有行是的,PEM确实包含所有开始/结束证书行,我将把它添加到我的帖子中。非常感谢你的帮助!但我有一个简单的问题,“r”代表什么?