2016-09-06 3 views
17

python.org에서 Python3을 설치했고 pip으로 패키지를 설치하는 데 문제가 있습니다. 설계 상으로는 여기에 네트워크상의 man-in-the-middle 패킷 검사 어플라이언스가 있으며 여기에는 모든 패킷 (SSL 포함)을 검사하여 모든 SSL 연결을 자체 인증서로 종료합니다. GPO의 일부가 사용자 지정 루트 인증서를 Windows Keystore로 푸시합니다.Windows에서 Python이 사용하는 CA 저장소에 사용자 지정 CA 루트 인증서를 추가하는 방법은 무엇입니까?

Java를 사용할 때 외부 https 사이트에 액세스해야하는 경우 자체 서명 된 CA 인증서를 신뢰하도록 JVM에서 cacerts를 수동으로 업데이트해야합니다.

어떻게 파이썬을 위해이를 수행합니까? 지금은 pip을 사용하여 패키지를 설치하려고 할 때 당연히 [SSL: CERTIFICATE_VERIFY_FAILED] 오류가 발생합니다.

나는 --trusted-host 매개 변수를 사용하여 무시할 수 있다는 것을 알았지 만, 설치하려고하는 모든 패키지에 대해 그렇게하고 싶지 않습니다.

python이 사용하는 CA 인증서 저장소를 업데이트하는 방법이 있습니까?

+0

[연결 오류 : \ [SSL : 인증서 \ _VERIFY \ _FAILED \] 인증서 확인에 실패했습니다 (\ _ssl.c : 598) "] (http://stackoverflow.com/questions/) [pip 설치가 실패 할 수 있습니다. 25981703/pip-install-fails-with-connection-error-ssl-certificate-verify-failed-certi) – rfkortekaas

+0

@rfkortekaas 예. 나는 당신이 참조하는 게시물이 문제를 해결하기 위해 무엇을해야하는지 물을 때 제안 된 모든 해결책이 각 호출에 수동으로 논증을 제공하는 것과 관련하여 그것이 중복되는 것에 동의하지 않습니다. 필자는 Windows에서 파이썬이 사용하는 트러스트 스토어를 사용하여 이러한 정확한 솔루션을 피하는 방법을 특별히 요구하고 있습니다. –

+0

글로벌 키 저장소 사용을 포함하여 가능한 모든 옵션을 설명하는 kenorb의 답을 살펴보십시오. – rfkortekaas

답변

7

실행 : python -c "import ssl; print(ssl.get_default_verify_paths())"을 실행하여 인증서를 확인하는 데 사용되는 현재 경로를 확인하십시오. 그 중 하나에 회사의 루트 인증서를 추가하십시오.

경로 openssl_capath_env은 환경 변수 인 SSL_CERT_DIR을 가리 킵니다.

SSL_CERT_DIR이 없으면 파일 시스템을 만들고 파일 시스템 내의 유효한 폴더를 가리켜 야합니다. 그런 다음이 폴더에 인증서를 추가하여 사용할 수 있습니다.

+5

은 Windows에서 사용할 수없는 '/ usr/local/ssl/certs'를 반환합니다. –

+0

필자는 또 다른 프로젝트를 수행 한 후에 마침내이 작업을 수행하고 @ColinTalbert와 유사하지만 존재하지 않는 폴더'/ usr/local/ssl/certs'를 가리 킵니다. –

+0

나는 내 질문을 편집 해 두었고 희망적으로이 사건을 해결했다. – rfkortekaas

관련 문제