2013-04-24 4 views
7

Screenshot of the errorpycurl https-Fehler: nicht in der Lage lokales Aussteller-Zertifikat

>>> 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() 
>>> 
>>> 

Warum ist es nicht in der Lage zu bekommen, um lokales Aussteller-Zertifikat zu erhalten? Wie löse ich das? Wenn ich quora.com in meinem Browser öffne, sehe ich, dass seine Identität verifiziert ist. Warum ist das der Fall? Wie bekomme ich pycurl, um die gleichen Zertifikate zu verwenden, die mein Browser verwendet? enter image description here

+0

verwandten: http://stackoverflow.com/questions/8332643/pycurl-and-ssl-cert –

Antwort

15

Das Problem ist, dass pycurl eine aktuelle Zertifikatskette benötigt, um die SSL-Zertifikate zu überprüfen.

Eine gute Lösung wäre certifi zu verwenden.

Es ist im Grunde eine aktuelle Kopie von Mozillas eingebauter Zertifikatskette, die in ein Python-Paket verpackt ist, das mit pip auf dem neuesten Stand gehalten werden kann. certifi.where() gibt Ihnen den Speicherort für das Zertifikatspaket.

Um pycurl zu machen, es zu benutzen, stellen Sie die Option CAINFO:

import pycurl 
import certifi 

curl = pycurl.Curl() 
curl.setopt(pycurl.CAINFO, certifi.where()) 
curl.setopt(pycurl.URL, 'https://www.quora.com') 
curl.perform() 
Verwandte Themen