I have an instance of an NVIDIA Triton Inference Server. Then, there is the Python's client which uses geventhttp Python's package to perform the requests.

This is all deployed as microservices, so in one container I have the NVIDIA Triton instance running, and in another container I have the client from where I run the inference requests (from now on, the app).

The issue I found is that whenever I try to perform an inference request using the Triton client from the app, I get this error:

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

which is pretty self-explanatory. However, if I dig down a bit and use OpenSSL to simulate the connection with the following command:

$ openssl s_client -connect triton.host:443

it connects successfully (CONNECTED(00000003)) using the correct certificate. cURL works too.

Also, I checked that the certificate is installed correctly and is present in /etc/ssl/certs/ca-certificates.crt.

Does anyone have any intuition of which might be the problem?

1 Answer 1


From the project site:

geventhttpclient depends on the certifi CA Bundle

Thus it does not use the system CA in /etc/ssl/certs/ca-certificates.crt like openssl or curl do. Instead it expects the certifi package to be installed in Python. Likely you don't have it installed.

  • Certifi is explicitly named in the project requirements so it most likely is installed. It may be an old version though and be missing a specific CA certificate. Commented Aug 29, 2023 at 15:56
  • @PhilipCouling: or this might be behind a corporate proxy and the interception CA is only installed into /etc/ssl. Commented Aug 29, 2023 at 16:04

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .