ケースがありますNVIDIA Triton推論サーバー。それからそこでPythonクライアントそれを使うゲームhttpリクエストを実行するための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 バンドルによって異なります。
/etc/ssl/certs/ca-certificates.crt
したがって、opensslやカールなどのシステムCAを使用しません。代わりに、certifiパッケージがPythonにインストールされることを期待しています。たぶんインストールしていない可能性があります。