pip lädt keine Pakete wegen SSL-Zertifikatsfehler? Meist schneidet ein Firmen-Proxy mit oder die Zertifikate sind veraltet — beides ist lösbar.
Aufwand:
ca. 25 Min.
Das Symptom
Beim Installieren eines Python-Pakets mit pip bricht der Vorgang ab und meldet
SSL: CERTIFICATE_VERIFY_FAILED oder dass das Zertifikat nicht überprüft werden
konnte. Kein Paket lässt sich herunterladen, obwohl die Internetverbindung
ansonsten funktioniert — der Browser öffnet Seiten ganz normal.
Die „Layer 8“-Wahrheit
pip ist beim Herunterladen bewusst misstrauisch: Es prüft, ob die Gegenstelle sich
mit einem gültigen, von einer anerkannten Stelle beglaubigten Zertifikat ausweist.
Scheitert diese Prüfung, verweigert pip den Download, statt womöglich manipulierte
Pakete zu laden. Der Fehler bedeutet also nicht, dass das Internet kaputt ist,
sondern dass pip dem verschlüsselten Weg nicht traut — und dafür gibt es zwei
typische Gründe. Im Firmennetz klinkt sich oft ein Proxy oder Virenscanner in die
Verbindung ein und tauscht das Zertifikat gegen ein eigenes, das pip nicht kennt.
Außerhalb davon ist meist die Zertifikatsablage auf dem System veraltet.
Die richtige Lösung folgt aus der Ursache: Ist die Ablage veraltet, hilft ein Update
von System, Python und pip — und auf manchen Systemen das einmalige Einrichten der
Zertifikate. Steckt ein Proxy dahinter, gehört dessen Zertifikat sauber als
vertrauenswürdig hinterlegt, wofür die IT die passende Datei liefert. Was man
dagegen nicht tun sollte, ist der verlockende Abkürzungsbefehl, der die Prüfung ganz
abschaltet — das mag den Fehler zum Schweigen bringen, öffnet aber genau die Tür, die
pip zu Recht bewacht.
Die echte, verifizierte Lösung
1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:
1.
Die Ursache eingrenzen
pip lädt Pakete über eine verschlüsselte Verbindung und prüft dabei das Zertifikat der Gegenstelle. Schlägt diese Prüfung fehl, gibt es meist zwei Gründe: Ein Firmen-Proxy oder Virenscanner klinkt sich mit einem eigenen Zertifikat ein, das pip nicht kennt — oder die Zertifikatsablage auf dem System ist veraltet.
2.
System und Zertifikate aktualisieren
Zuerst das Naheliegende: Betriebssystem, Python und pip aktualisieren, damit die Wurzelzertifikate aktuell sind. Auf manchen Systemen — etwa nach einer Neuinstallation von Python auf dem Mac — muss die Zertifikatsablage einmalig eingerichtet werden, wofür Python ein eigenes Skript mitbringt.
3.
Das Proxy-Zertifikat einbinden
Klinkt sich im Firmennetz ein Proxy ein, muss dessen Zertifikat als vertrauenswürdig hinterlegt werden. Die IT stellt die passende Zertifikatsdatei bereit; sie lässt sich pip über die Einstellung für vertrauenswürdige Zertifikate mitgeben, sodass die Prüfung wieder gelingt — ohne die Sicherheit auszuhebeln.
4.
Uhrzeit und Proxy-Einstellungen prüfen
Eine falsch gehende Systemuhr lässt gültige Zertifikate als ungültig erscheinen — Datum und Zeit korrigieren. Ebenso prüfen, ob die Proxy-Umgebungsvariablen korrekt gesetzt sind, damit pip überhaupt den richtigen Weg nach draußen nimmt.
5.
Die Prüfung nicht dauerhaft abschalten
pip lässt sich zwar anweisen, die Zertifikatsprüfung zu übergehen — das ist aber eine Sicherheitslücke und höchstens für einen einmaligen Notfall vertretbar. Statt die Prüfung abzuschalten, gehört das richtige Zertifikat eingebunden, damit die Verbindung geschützt bleibt.
Häufige Fragen (FAQ)
?pip kann Pakete nicht laden wegen eines Zertifikatsfehlers. Was ist kaputt?
In aller Regel nichts an pip. Entweder sind die Stammzertifikate des Systems veraltet, die Uhr geht falsch, oder – am häufigsten im Firmennetz – ein Proxy bricht die verschlüsselte Verbindung auf und signiert sie neu. Python kennt dessen Zertifikat nicht und verweigert korrekt den Dienst.
?Kann ich die Prüfung nicht einfach mit --trusted-host abschalten?
Für einen einmaligen Notfall mag das gehen, als Dauerlösung ist es fahrlässig. Sie laden damit ausführbaren Code aus dem Netz und verzichten auf jede Prüfung, wer ihn geschickt hat. Der richtige Weg ist, das Zertifikat des Proxys in den Zertifikatsspeicher aufzunehmen – dann funktioniert alles, ohne dass Sie sich blind machen.
Belege
Diese Seite ist gegen die folgenden Primärquellen geprüft – Hersteller, Standard oder Gesetzestext. Wer es nicht glaubt, muss es nicht: Da steht, wo es nachzulesen ist.
Python meldet ModuleNotFoundError, obwohl das Paket installiert ist? Meist stimmt die Umgebung, der Import-Name oder der Dateiname nicht. So löst du es.