2013-04-24 7 views
7

Screenshot of the errorpycurl https त्रुटि: स्थानीय जारीकर्ता प्रमाणपत्र

>>> import pycurl 
>>> c = pycurl.Curl() 
>>> c.setopt(c.URL, 'https://quora.com') 
>>> c.perform() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
pycurl.error: (60, 'SSL certificate problem: unable to get local issuer certificate') 
>>> 
>>> c.setopt(c.URL, 'http://quora.com') 
>>> c.perform() 
>>> 
>>> 

क्यों यह स्थानीय जारीकर्ता प्रमाण पत्र प्राप्त करने में असमर्थ है प्राप्त करने में असमर्थ? मैं इसे कैसे हल करूं? जब मैं अपने ब्राउज़र में quora.com खोलता हूं, तो मुझे लगता है कि इसकी पहचान सत्यापित है। यह एक केस क्यों है? मैं अपने ब्राउज़र का उपयोग करने वाले प्रमाणपत्रों का उपयोग करने के लिए pycurl कैसे प्राप्त करूं? enter image description here

+0

संबंधित: http://stackoverflow.com/questions/8332643/pycurl-and-ssl-cert –

उत्तर

15

समस्या यह है कि pycurl को एसएसएल प्रमाण पत्र सत्यापित करने के लिए एक अद्यतित प्रमाणपत्र श्रृंखला की आवश्यकता है।

certifi का उपयोग करने के लिए एक अच्छा समाधान होगा।

यह मूल रूप से एक पाइथन पैकेज में लिपटे प्रमाण पत्र श्रृंखला में निर्मित मोज़िला की एक अद्यतित प्रति है जिसे पीआईपी का उपयोग करके अद्यतित रखा जा सकता है। certifi.where() आपको प्रमाणपत्र बंडल में स्थान देता है।

pycurl इसका इस्तेमाल करने के लिए, CAINFO विकल्प सेट:

import pycurl 
import certifi 

curl = pycurl.Curl() 
curl.setopt(pycurl.CAINFO, certifi.where()) 
curl.setopt(pycurl.URL, 'https://www.quora.com') 
curl.perform() 
संबंधित मुद्दे