OpenSSL 识别 SSL 证书,但 geventhttpclient 不识别

OpenSSL 识别 SSL 证书,但 geventhttpclient 不识别

我有一个实例NVIDIA Triton 推理服务器。然后,有Python的客户端它使用geventhttp用于执行请求的 Python 包。

这全部部署为微服务,因此在一个容器中运行 NVIDIA Triton 实例,在另一个容器中运行推理请求的客户端(从现在开始为应用程序)。

我发现的问题是,每当我尝试使用应用程序中的 Triton 客户端执行推理请求时,都会收到以下错误:

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)

这是不言自明的。但是,如果我深入研究一下并使用 OpenSSL 通过以下命令模拟连接:

$ openssl s_client -connect triton.host:443

CONNECTED(00000003)它使用正确的证书成功连接 ( )。 cURL 也可以工作。

另外,我检查了证书是否正确安装并且存在于中/etc/ssl/certs/ca-certificates.crt

有谁有任何直觉可能是问题所在吗?

答案1

项目现场:

geventhttpclient 依赖于 certifi CA Bundle

/etc/ssl/certs/ca-certificates.crt因此它不像 openssl 或curl 那样使用系统CA。相反,它期望 certifi 包安装在 Python 中。可能是你没有安装它。

相关内容