我有一个实例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 中。可能是你没有安装它。