자체 서명 인증 기관 pip
/conda
Git의 유사한 문제를 광범위하게 문서화 한 후 ( 어떻게 git이 자체 서명 된 인증서를 수락하도록 할 수 있습니까? ), 여기에서 우리는 신뢰해야하는 MitM "공격" 을 제공하는 프록시가있는 기업 방화벽 뒤에 있습니다 .
모든 SSL 확인을 비활성화하지 마십시오!
이것은 나쁜 보안 문화를 만듭니다. 그 사람이되지 마십시오.
tl; dr
pip config set global.cert path/to/ca-bundle.crt
pip config list
conda config --set ssl_verify path/to/ca-bundle.crt
conda config --show ssl_verify
git config --global http.sslVerify true
git config --global http.sslCAInfo path/to/ca-bundle.crt
그러나 우리는 어디에서 얻을 수 ca-bundle.crt
있습니까?
최신 CA 번들 받기
cURL은 Mozilla Firefox와 함께 번들로 제공되는 인증 기관의 발췌문을 게시합니다.
https://curl.haxx.se/docs/caextract.html
이 cacert.pem
파일에 자체 서명 된 CA를 추가해야하므로 텍스트 편집기 에서이 파일 을 여는 것이 좋습니다 .
인증서는 X.509를 준수하는 문서이지만 몇 가지 방법으로 디스크에 인코딩 할 수 있습니다. 아래 기사는 좋은 읽기이지만 짧은 버전은 파일 확장자에서 종종 PEM이라고 불리는 base64 인코딩을 다루고 있다는 것입니다. 형식이 다음과 같습니다.
----BEGIN CERTIFICATE----
....
base64 encoded binary data
....
----END CERTIFICATE----
https://support.ssl.com/Knowledgebase/Article/View/19/0/der-vs-crt-vs-cer-vs-pem-certificates-and-how-to-convert-them
자체 서명 인증서 받기
다음은 자체 서명 된 인증서를 얻는 방법에 대한 몇 가지 옵션입니다.
- OpenSSL CLI를 통해
- 브라우저를 통해
- Python 스크립팅을 통해
OpenSSL CLI로 자체 서명 된 인증서 받기
/unix/451207/how-to-trust-self-signed-certificate-in-curl-command-line/468360#468360
echo quit | openssl s_client -showcerts -servername "curl.haxx.se" -connect curl.haxx.se:443 > cacert.pem
브라우저를 통해 자체 서명 된 인증 기관 받기
이 답변과 링크 된 블로그 덕분에 인증서를 본 다음 base64 PEM 인코딩 옵션을 사용하여 파일로 복사하는 방법 (Windows)을 보여줍니다.
이 내 보낸 파일의 내용을 복사하여 파일 끝에 붙여 넣습니다 cacerts.pem
.
일관성을 위해이 파일의 이름을 cacerts.pem
-> 바꾸고 다음 ca-bundle.crt
과 같이 쉽게 배치하십시오.
%USERPROFILE%\certs\ca-bundle.crt
$HOME/certs/cabundle.crt
Python을 통해 자체 서명 된 인증 기관 받기
모든 훌륭한 답변에 감사드립니다.
Python의 요청에서 응답 SSL 인증서를 얻는 방법은 무엇입니까?
나는 한 단계 더 나아 가기 위해 다음을 모았습니다.
https://github.com/neozenith/get-ca-py
드디어
이 CA 저장소가 추가 자체 서명 된 CA와 함께 상주하는 위치를 알 수 있도록 pip 및 conda에서 구성을 설정합니다.
pip config set global.cert %USERPROFILE%\certs\ca-bundle.crt
conda config --set ssl_verify %USERPROFILE%\certs\ca-bundle.crt
또는
pip config set global.cert $HOME/certs/ca-bundle.crt
conda config --set ssl_verify $HOME/certs/ca-bundle.crt
그때
pip config list
conda config --show ssl_verify
pip config list -v
For variant 'global', will try loading '/Library/Application Support/pip/pip.conf'
For variant 'user', will try loading '/Users/jpeak/.pip/pip.conf'
For variant 'user', will try loading '/Users/jpeak/.config/pip/pip.conf'
For variant 'site', will try loading '/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/pip.conf'
참고 문헌