사례가 있습니다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에 설치될 것으로 예상합니다. 어쩌면 설치하지 않았을 수도 있습니다.