Kendinden İmzalı Sertifika Yetkilileri pip
/conda
Git ile benzer bir sorunu kapsamlı bir şekilde belgeledikten sonra ( git'e kendi kendine imzalanan bir sertifikayı nasıl kabul ettirebilirim? ), Burada yine kurumsal bir güvenlik duvarının arkasındayız ve bir proxy ile bize güvenmemiz gereken bir MitM "saldırısı" yapıyoruz ve:
Tüm SSL doğrulamasını ASLA devre dışı bırakmayın!
Bu kötü bir güvenlik kültürü yaratır. O kişi olmayın.
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
Ama nereden alıyoruz ca-bundle.crt
?
Güncel bir CA Paketi edinin
cURL, Mozilla Firefox ile birlikte verilen Sertifika Yetkililerinin bir özetini yayınlar
https://curl.haxx.se/docs/caextract.html
cacert.pem
Kendinden imzalı CA'mızı bu dosyaya eklememiz gerekeceğinden, bu dosyayı bir metin düzenleyicide açmanızı tavsiye ederim .
Sertifikalar, X.509 ile uyumlu bir belgedir ancak diske birkaç şekilde kodlanabilirler. Aşağıdaki makale iyi bir okuma ama kısa versiyon, dosya uzantılarında genellikle PEM olarak adlandırılan base64 kodlamasıyla uğraştığımızdır. Şu biçime sahip olduğunu göreceksiniz:
----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
Kendinden İmzalı Sertifikamızı Alma
Aşağıda, kendinden imzalı sertifikamızı nasıl alacağınıza dair birkaç seçenek bulunmaktadır:
- OpenSSL CLI aracılığıyla
- Tarayıcı aracılığıyla
- Python Scripting ile
OpenSSL CLI ile Kendinden İmzalı Sertifikamızı alın
/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
Kendinden İmzalı Sertifika Yetkilimizi Tarayıcı aracılığıyla edinin
Bu cevap ve bağlantılı blog sayesinde, sertifikanın nasıl görüntüleneceği ve ardından base64 PEM kodlama seçeneğini kullanarak dosyaya nasıl kopyalanacağı (Windows'ta) adımları gösterir.
Dışa aktarılan bu dosyanın içeriğini kopyalayın ve dosyanızın sonuna yapıştırın cacerts.pem
.
Tutarlılık için bu dosyayı cacerts.pem
-> yeniden adlandırın ca-bundle.crt
ve aşağıdaki gibi kolay bir yere yerleştirin:
%USERPROFILE%\certs\ca-bundle.crt
$HOME/certs/cabundle.crt
Kendinden İmzalı Sertifika Yetkilimizi Python aracılığıyla edinin
Tüm parlak cevaplar için teşekkürler:
Python'daki isteklerden yanıt SSL sertifikası nasıl alınır?
Bunu bir adım daha ileri götürmek için aşağıdakileri bir araya getirdim.
https://github.com/neozenith/get-ca-py
En sonunda
Yapılandırmayı pip ve conda olarak ayarlayın, böylece bu CA mağazasının ekstra kendinden imzalı CA'mızla nerede olduğunu bilebilir.
pip config set global.cert %USERPROFILE%\certs\ca-bundle.crt
conda config --set ssl_verify %USERPROFILE%\certs\ca-bundle.crt
VEYA
pip config set global.cert $HOME/certs/ca-bundle.crt
conda config --set ssl_verify $HOME/certs/ca-bundle.crt
SONRA
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'
Referanslar