स्व-हस्ताक्षरित प्रमाणपत्र प्राधिकारी pip
/conda
जीआईटी के साथ एक समान समस्या का दस्तावेजीकरण करने के बाद ( मैं कैसे एक स्व हस्ताक्षरित प्रमाण पत्र स्वीकार कर सकता हूं? ), यहां हम फिर से एक कॉर्पोरेट फ़ायरवॉल के पीछे हैं जिसमें एक प्रॉक्सी हमें एक मीत "हमला" दे रहा है जिस पर हमें भरोसा करना चाहिए और:
सभी एसएसएल सत्यापन को अक्षम करें!
यह एक खराब सुरक्षा संस्कृति बनाता है। वह व्यक्ति मत बनो।
tl; डॉ
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 ने सर्टिफिकेट अथॉरिटीज का एक उद्धरण मोज़िला फ़ायरफ़ॉक्स के साथ प्रकाशित किया
https://curl.haxx.se/docs/caextract.html
मैं आपको इस cacert.pem
फ़ाइल को एक टेक्स्ट एडिटर में खोलने की सलाह देता हूं क्योंकि हमें इस फाइल में अपना स्व-हस्ताक्षरित सीए जोड़ना होगा।
प्रमाणपत्र X.509 का अनुपालन करने वाला एक दस्तावेज है, लेकिन उन्हें कुछ तरीकों से डिस्क में एन्कोड किया जा सकता है। नीचे का लेख एक अच्छा पढ़ा गया है, लेकिन संक्षिप्त संस्करण यह है कि हम बेस 64 एनकोडिंग के साथ काम कर रहे हैं जिसे अक्सर फ़ाइल एक्सटेंशन में पीईएम कहा जाता है। आप देखेंगे कि इसका प्रारूप है:
----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
हमारा स्वप्रमाणित प्रमाण पत्र प्राप्त करना
नीचे हमारे स्व-हस्ताक्षरित प्रमाण पत्र प्राप्त करने के बारे में कुछ विकल्प दिए गए हैं:
- वाया ओपनएसएसएल सीएलआई
- ब्राउज़र
- पायथन स्क्रिप्टिंग के माध्यम से
ओपनएसएसएल सीएलआई द्वारा हमारे स्व-हस्ताक्षरित प्रमाण पत्र प्राप्त करें
/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
ब्राउज़र के माध्यम से हमारे स्व-हस्ताक्षरित प्रमाणपत्र प्राधिकरण प्राप्त करें
इस उत्तर और लिंक किए गए ब्लॉग के लिए धन्यवाद, यह चरणों (विंडोज पर) को दिखाता है कि प्रमाण पत्र कैसे देखें और फिर बेस 64 पीईएम एन्कोडिंग विकल्प का उपयोग करके फ़ाइल में कॉपी करें।
इस निर्यात की गई फ़ाइल की सामग्री की प्रतिलिपि बनाएँ और इसे अपनी cacerts.pem
फ़ाइल के अंत में चिपकाएँ ।
स्थिरता के लिए इस फ़ाइल का नाम बदलें cacerts.pem
-> ca-bundle.crt
और इसे कहीं आसान की तरह रखें:
%USERPROFILE%\certs\ca-bundle.crt
$HOME/certs/cabundle.crt
पायथन के माध्यम से हमारे स्व-हस्ताक्षरित प्रमाणपत्र प्राधिकरण प्राप्त करें
सभी शानदार उत्तर के लिए धन्यवाद:
अजगर में अनुरोधों से प्रतिक्रिया एसएसएल प्रमाणपत्र कैसे प्राप्त करें?
मैंने इसे एक कदम आगे ले जाने के प्रयास के लिए एक साथ रखा है।
https://github.com/neozenith/get-ca-py
आखिरकार
पाइप और कोंडा में कॉन्फ़िगरेशन सेट करें ताकि यह पता चले कि यह सीए स्टोर हमारे अतिरिक्त स्व-हस्ताक्षरित सीए के साथ कहां रहता है।
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'
संदर्भ