繁体   English   中英

OpenSSL 加密错误:[('PEM 例程','PEM_read_bio','无起始行')]

[英]OpenSSL crypto error: [('PEM routines', 'PEM_read_bio', 'no start line')]

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

OpenSSL.crypto.Error: [('PEM routines', 'PEM_read_bio', 'no start line')]

运行OpenSSL.crypto.load_certificate(FILETYPE_PEM, filename) 我进行了一些研究,但无法找到特定于我的案例的答案。

我尝试检查文件是否存在os.path.isfile(filename)返回True ,但加载证书只会引发上述错误。

此外,在终端openssl X509 -in file.pem上执行时,它的作用就像一个魅力。

file.pem 看起来像这样:

-----BEGIN CERTIFICATE-----
<<sensitive data>>
-----END CERTIFICATE-----

这似乎是有效的,因为我能够在终端上执行基本的openssl操作。 如果有帮助,我正在运行 CentOS 7。

有什么想法吗?

谢谢!

根据http://www.pyopenssl.org/en/stable/api/crypto.html#OpenSSL.crypto.load_certificateload_certificate()需要一个包含证书的缓冲区(字符串可以),而不是文件名。

你需要做的:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM