如何解决 python openssl load_cert_chain 函数错误?
Posted
技术标签:
【中文标题】如何解决 python openssl load_cert_chain 函数错误?【英文标题】:How can I solve python openssl load_cert_chain function error? 【发布时间】:2019-10-22 09:06:59 【问题描述】:我正在使用 Pytoh 设置一个新服务器,tornado。 我要设置HTTPS。 但是当服务器加载服务器证书文件时,load_cert_chain 函数会产生错误。 我从 GoDaddy 购买了这些证书文件,之前在 Apache Server 上还可以。 所以证书文件和密钥文件匹配,ca文件也可以。
python 版本:3.7.4 龙卷风版本:4.5.2 openssl 版本:OpenSSL 1.1.1c 2019 年 5 月 28 日
ssl_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
ssl_ctx.load_cert_chain("../server.crt", "../server.key")
ssl_ctx.load_verify_locations("../ca.crt")
ssl_ctx.verify_mode = ssl.CERT_REQUIRED
https_server = tornado.httpserver.HTTPServer(app, ssl_options=ssl_ctx)
这是错误信息。 ssl_ctx.load_cert_chain("../server.crt", "../server.key") ssl.SSLError: [SSL] PEM 库 (_ssl.c:3854)
【问题讨论】:
证书有不同的格式,请确保提供匹配的格式 感谢您的友好回复。是的。我已经通过sslshopper.com/certificate-key-matcher.html 确认了这一点。 好吧 ssl_ctx.load_cert_chain 显然需要一个全链证书,但是您提供带有 cert_key 的证书,您应该研究一下证书链:) 谢谢。所以你的意思是我应该从中获取完整的链证书文件并将其用作参数? 在我看来合乎逻辑 【参考方案1】:我解决了这个问题。我使用 nginx 服务器来托管带有数字签名证书的 python 服务器。
【讨论】:
以上是关于如何解决 python openssl load_cert_chain 函数错误?的主要内容,如果未能解决你的问题,请参考以下文章
通过离线安装包解决了 from cryptography.hazmat.bindings._openssl import ffi, lib ImportError: /usr/local/python
openssl version 查看openssl 版本出现openssl: error while loading shared libraries: libssl.so.1.1: cannot o
openssl: error while loading shared libraries: libssl.so.1.1