2016-01-27 5 views
8

मैंने अपने वेबसर्वर को HTTP से HTTPS में "Let"s Encrypt" के साथ बदल दिया है। वेबसर्वर में एक एपीआई है, और मेरे पास एक पायथन एप्लिकेशन है, जो एपीआई का उपयोग करता है।चलिए एन्क्रिप्ट प्रमाणपत्र, पायथन और विंडोज

लिनक्स के तहत सभी ठीक है, लेकिन Windows के तहत मैं इस नीचे प्राप्त करते हैं, जब मैं में प्रवेश करने कर रहा हूँ।

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) 

मेरे बारे में सोचा था, कि SSL प्रमाणपत्र स्थापित नहीं है।

इसलिए मैंने "isrgrootx1.der" और "lets-एन्क्रिप्ट-एक्स 1-क्रॉस-हस्ताक्षर.डर" डाउनलोड किया, जिसका नाम बदलकर "* .cer" हो गया।

तब मैं Windows कंसोल खोला, और इस चलाएँ:

certutil -addstore "Root" "isrgrootx1.cer". 
certutil -addstore "Root" "lets-encrypt-x1-cross-signed.cer". 

दूसरा आदेश में विफल रहा है, क्योंकि यह एक मूल प्रमाणपत्र नहीं है। मेरा प्रश्न है: किस समूह में "lets-encrypt-x1-cross-sign.cer" स्थापित किया जाना है?

+0

क्या आप उत्तर देख सकते हैं और देख सकते हैं कि यह आपके लिए @clausismus काम करता है या नहीं? – TheDarkKnight

उत्तर

-1

python-requests लाइब्रेरी का उपयोग करते समय मुझे एक ही समस्या का सामना करना पड़ा।

यहाँ क्या मेरे लिए काम किया है:

r = requests.post(url, *verify=False*)  # Verify=false being the key element here 

requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += 'HIGH:!DH:!aNULL' # this is to deal with the "dh key too small" error that you might face later 

आशा है कि यह मदद करता है!

0

आपको अपनी विंडोज मशीन पर "lets-encrypt-x1-cross-sign.cer" जोड़ने की आवश्यकता नहीं है, क्योंकि यह केवल एक मध्यवर्ती प्रमाणपत्र है। और आपको "isrgrootx1.cer" जोड़ने की आवश्यकता नहीं है, क्योंकि चलिए प्रमाणपत्र श्रृंखला को "डीएसटी रूट एक्स 3" में एन्क्रिप्ट करते हैं, जो पहले से ही विंडोज के साथ शामिल है।

सबसे अधिक संभावना है कि आपका वेब सर्वर इंटरमीडिएट प्रमाणपत्र भेजने के लिए कॉन्फ़िगर नहीं किया गया था। यदि आप Certbot का उपयोग कर रहे हैं, उदाहरण के लिए, आप "cert.pem" के बजाय "fullchain.pem" का उपयोग करके अपने वेब सर्वर को कॉन्फ़िगर करना चाहते हैं।

संबंधित मुद्दे