Warum erhalte ich in Python 2.7.9+ sporadisch die Meldung „SSL: CERTIFICATE_VERIFY_FAILED“?

Warum erhalte ich in Python 2.7.9+ sporadisch die Meldung „SSL: CERTIFICATE_VERIFY_FAILED“?

Zunächst einmal möchte ich sagen, dass ich mir der Änderungen in Python 2.7.9 zur Überprüfung von SSL-Zertifikaten bewusst bin. Ich kenne auch ein paar verschiedene Möglichkeiten, diese Änderungen zu umgehen und sie abzuschalten. Meine Frage ist, warum ich sporadisch diesen Fehler erhalte. Ich würde denken, dass es immer fehlschlagen würde, wenn etwas nicht stimmt, aber das ist nicht das, was ich sehe. Ich habe den ganzen Tag an einem Code gearbeitet, der zufällig einige Anfragen stellt, urllibund plötzlich erhalte ich den folgenden Fehler:

URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>

Während ich diese Frage schrieb, habe ich meine Änderungen gespeichert und wieder hochgeladen (in Git) und der Fehler stoppte. Warum diese Inkonsistenz?

UPDATE: Dieser Fehler tritt auch in Python 3 auf, allerdings immer wieder.

Antwort1

Ich habe dieses Problem möglicherweise gelöst. Es stellte sich heraus, dass die SSLCertificateChainFileEinstellung in meiner Apache-Konfiguration fehlte. Ich weiß mit Sicherheit, dass dies den Python 3-Fehler behebt, da er ständig auftrat. Ich gehe davon aus, dass er auch in Python 2.7.9 nicht mehr auftritt, habe aber keine Möglichkeit, den Fehler in Python 2 zu reproduzieren, also kann ich es nicht mit Sicherheit wissen.

verwandte Informationen