के रूप में प्रमाण पत्र भेजता है, मुझे लगता है कि हैंडशेक ठीक तरह से काम नहीं कर रहा है।पायथन अनुरोध स्ट्रिंग
cert = 'path/to/cert_file.pem'
url = 'https://example.com/api'
requests.get(url, cert=cert, verify=True)
यह ठीक है जब मैं इसे स्थानीय रूप से उपयोग करता हूं जहां मेरे पास भौतिक रूप से फ़ाइल है। हम अपने आवेदन को उसकेोकू पर होस्ट करते हैं और पर्यावरण के उपयोग का उपयोग करते हैं।
अनुरोध मॉड्यूल स्ट्रिंग के रूप में प्रमाण पत्र स्वीकार नहीं करता प्रतीत होता है। जैसे।
$ export CERTIFICATE="long-list-of-characters"
requests.get(url, cert=get_env('CERTIFICATE'), verify=True)
मैं भी कुछ इस तरह की कोशिश की है:
सभी कीcert = tempfile.NamedTemporaryFile()
cert.write(CERTIFICATE)
cert.seek(0)
requests.get(url, cert=cert.name, verify=True)
सबसे पहले, यह स्थानीय स्तर पर नहीं बल्कि Heroku पर काम करता है। वैसे भी, यह एक ठोस समाधान की तरह महसूस नहीं करता है। मुझे एक एसएसएल हैंडशेक त्रुटि मिलती है।
कोई सुझाव?
संभावित डुप्लिकेट [पाइथन में स्ट्रिंग चर में संग्रहीत प्रमाणपत्र का उपयोग करके एसएसएल सॉकेट कैसे खोलें] (http://stackoverflow.com/questions/12336239/how -टू-ओपन-एसएसएल-सॉकेट-उपयोग-प्रमाणपत्र-संग्रहित-इन-स्ट्रिंग-चर-इन-पायथन) –
@ गेलबैंडर, जिन्होंने cert_file.pem पर हस्ताक्षर किए हैं? क्या यह आपके कस्टम/इनहाउस रूट प्रमाणपत्र प्राधिकरण द्वारा स्वयं हस्ताक्षरित है? क्या आपने यह सुनिश्चित करने के लिए हेरोोकू में पेम पूर्ण पथ को पारित करने के लिए सुनिश्चित किया है, यह सुनिश्चित करने के लिए कि आप अपनी पम फ़ाइल को हेरोोकू में अपलोड करने का प्रयास कर चुके हैं? –
इसके अलावा मुझे यकीन नहीं है कि एनवी चर का उपयोग करना पसंदीदा तरीका है। यह शायद "हेरोकू कॉर्ट्स: सर्वर.crt server.key" का उपयोग करके बेहतर है –