pycurl und SSL-Zertifikat
Ich versuche zu schreiben pycurl-Skript, um den Zugriff auf eine gesicherte Seite (HTTPS).
c = pycurl.Curl()
c.setopt(pycurl.USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0')
c.setopt(pycurl.URL, 'https://for-example-securedsite')
c.setopt(pycurl.COOKIEFILE, 'cookie.txt')
c.setopt(pycurl.COOKIEJAR, 'cookies.txt')
c.setopt(pycurl.WRITEDATA, file("page.html","wb"))
Bin ich immer die folgende Fehlermeldung..
pycurl.error: (60, 'SSL certificate problem, verify, dass das CA cert is OK. Details:\nerror:14090086:SSL-Routinen:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed')
Den code fehlgeschlagen, da er nicht um die SSL-cert.
Der Fehler ging Weg, wenn ich, fügen Sie die folgenden Zeilen zu meinem code.
c.setopt(pycurl.SSL_VERIFYPEER, 0)
c.setopt(pycurl.SSL_VERIFYHOST, 0)
Den obigen code überspringen-Zertifikat-Verifizierung. Aber seine unterworfen 'Mann in der Mitte" - Angriff.
Ich weiß, ich habe das SSL-Zertifikat in meinem lokalen Zertifikat-Speicher. Tun, wer weiß, wie um mein Zertifikat exportieren und verwenden Sie es, mein code.. Einige Beispiel-codes wird genial..
Vielen Dank für Ihre Zeit!
InformationsquelleAutor der Frage K2M | 2011-11-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du hast Recht, die Art und Weise Sie es tun, Themen, die Sie für man-in-the-middle-Angriff, vor allem in Anbetracht der neueste SSL-Sicherheitslücken. Sie können es beheben, wie folgt:
curl standardmäßig kommt mit einem veralteten Zertifikat-Liste. Ob Sie wollen, Sie zu aktualisieren, oder verwenden Sie einfach Ihre eigenen certs für die Prüfung sicherstellen, dass das aktualisierte Zertifikat-Kette.crt-Datei in einem zugänglichen Ort auf, und verwenden Sie die pycurl.CAINFO-option verweisen.
Stellen Sie außerdem sicher pycurl.SSL_VERIFYHOST auf 2 festgelegt ist, der höchste Sicherheits-Einstellung prüfen.
InformationsquelleAutor der Antwort Suman
Haben, Lesen Sie die cURL-Dokumentation über SSL-Zertifikate? Dies scheint direkt zu Adresse deiner Frage...insbesondere Punkt 2:
Sieht es aus wie die pycurl-Modul enthält die
CAPATH
option, so sollte dies einfach in Ihrem code zu implementieren.InformationsquelleAutor der Antwort larsks