Beheben Sie den Fehler SSL: CERTIFICATE_VERIFY_FAILED in Python

Zeeshan Afridi 10 Oktober 2023
  1. SSL-Zertifikat
  2. Ursachen des Fehlers SSL: CERTIFICATE_VERIFY_FAILED
  3. Beheben Sie den Fehler SSL: CERTIFICATE_VERIFY_FAILED
  4. Beheben Sie den Fehler SSL: CERTIFICATE_VERIFY_FAILED, indem Sie einen nicht verifizierten Kontext in SSL erstellen
  5. Beheben Sie den Fehler SSL: CERTIFICATE_VERIFY_FAILED, indem Sie einen nicht verifizierten HTTP-Kontext in SSL erstellen
  6. Beheben Sie den Fehler SSL: CERTIFICATE_VERIFY_FAILED mit dem Befehl pip
  7. Beheben Sie den Fehler SSL: CERTIFICATE_VERIFY_FAILED mit dem Requests-Modul
  8. Abschluss
Beheben Sie den Fehler SSL: CERTIFICATE_VERIFY_FAILED in Python

SSL ist ein Protokoll zur Verschlüsselung der zwischen Benutzern und dem Server übertragenen Daten. Der Server erstellt und sendet dem Client ein digitales Zertifikat, um sicherzustellen, dass die Daten nicht manipuliert werden.

Beim Erstellen eines SSL-Zertifikats prüft die CA die Domäne.

Wenn die Domäne unter der im Zertifikat angegebenen Adresse nicht existiert, gibt die CA einen Fehler für die Zertifizierungsstelle (CA) zurück. Wir werden mehr über SSL und die Ursachen des Fehlers SSL: CERTIFICATE_VERIFY_FAILED erfahren.

SSL-Zertifikat

Ein SSL-Zertifikat ist ein digitales Zertifikat, das es Unternehmen ermöglicht, eine sichere, verschlüsselte Verbindung mit einem Webbrowser herzustellen. Wenn ein Unternehmen über ein SSL-Zertifikat verfügt, werden alle zwischen dem Unternehmen und dem Webbrowser ausgetauschten Informationen verschlüsselt, wodurch es für jeden schwierig wird, die Daten abzufangen und zu lesen.

Dies ist wichtig für Unternehmen, da es hilft, vertrauliche Informationen wie Kreditkartennummern und Anmeldeinformationen zu schützen.

Ursachen des Fehlers SSL: CERTIFICATE_VERIFY_FAILED

Es gibt mehrere Gründe für den Fehler SSL: CERTIFICATE_VERIFY_FAILED. Jeder wird unten erklärt.

  1. Eine Möglichkeit ist, dass das SSL-Zertifikat der Website ungültig ist, was bedeutet, dass die Website kein gültiges Zertifikat verwendet, um die Daten und die Kommunikation zwischen Client und Server zu verschlüsseln. Infolgedessen kann Ihr Browser die Identität der Website nicht überprüfen.

    Dies kann ein Sicherheitsrisiko darstellen. Dies bedeutet, dass Ihre Daten möglicherweise nicht ordnungsgemäß verschlüsselt sind und von Dritten abgefangen werden könnten.

  2. Eine andere Möglichkeit ist, dass Ihr Browser das SSL-Zertifikat der Website nicht erkennt. Dies kann passieren, wenn die Website ein selbstsigniertes Zertifikat oder ein Zertifikat einer unbekannten Stelle verwendet.

    In beiden Fällen kann Ihr Browser die Identität der Website nicht ordnungsgemäß überprüfen, was wiederum ein Sicherheitsrisiko darstellen kann.

  3. Schliesslich kann der Fehler SSL: CERTIFICATE_VERIFY_FAILED auch auftreten, wenn es ein Problem mit der SSL-Zertifikatskette der Website gibt. Dies kann passieren, wenn eines der Zertifikate in der Kette abgelaufen oder widerrufen ist oder die Website eine veraltete SSL-Version verwendet.

    Wenn Sie diesen Fehler sehen, müssen Sie sich an den Eigentümer der Website wenden und ihn bitten, das Problem zu beheben.

Beheben Sie den Fehler SSL: CERTIFICATE_VERIFY_FAILED

Wenn Sie den Fehler SSL: CERTIFICATE_VERIFY_FAILED sehen, kann Ihr Computer das SSL-Zertifikat für die Website, die Sie besuchen möchten, nicht verifizieren. Dies kann aus verschiedenen Gründen geschehen, einschließlich Problemen mit dem SSL-Zertifikat der Website, dem Truststore Ihres Computers oder Netzwerkproblemen.

Um den Fehler SSL: CERTIFICATE_VERIFY_FAILED zu beheben, müssen Sie herausfinden, was ihn verursacht.

Liegt ein Problem mit dem SSL-Zertifikat der Website vor? Wenn dies der Fall ist, können Sie versuchen, die Website mit einem anderen Browser zu besuchen, oder sich an den Eigentümer der Website wenden, um ihn darüber zu informieren.

Wenn das Problem beim Truststore Ihres Computers liegt, müssen Sie Ihren Truststore mit den neuesten Zertifikaten aktualisieren. Und wenn das Problem bei Ihrem Netzwerk liegt, müssen Sie Ihre Netzwerkverbindung beheben.

Beheben Sie den Fehler SSL: CERTIFICATE_VERIFY_FAILED, indem Sie einen nicht verifizierten Kontext in SSL erstellen

In Bezug auf SSL ist eines der wichtigsten Dinge, die zu berücksichtigen sind, der Kontext, in dem es verwendet wird. Leider gibt es auf diese Frage keine allgemeingültige Antwort, da der Kontext, in dem SSL verwendet wird, je nach Situation unterschiedlich sein wird.

Es gibt jedoch einige allgemeine Tipps, die dabei helfen können, einen sichereren SSL-Kontext zu erstellen.

Zunächst ist es wichtig sicherzustellen, dass alle SSL-Verbindungen mit starker Kryptografie hergestellt werden. Das bedeutet, starke Algorithmen wie SHA-256 oder SHA-512 zu verwenden und darauf zu achten, dass alle Schlüssel eine Länge von mindestens 2048 Bit haben.

Außerdem ist es wichtig, die Identität des Servers zu überprüfen, bevor eine SSL-Verbindung hergestellt wird. Dies kann erfolgen, indem das Zertifikat des Servers mit einer vertrauenswürdigen Quelle eines Drittanbieters verglichen wird, z. B. mit einer Zertifizierungsstelle.

Schließlich ist es auch wichtig sicherzustellen, dass SSL-Verbindungen richtig konfiguriert sind. Dazu gehört die Sicherstellung, dass alle Verbindungen mit den richtigen Protokollen und Cipher Suites hergestellt werden und dass alle Zertifikate ordnungsgemäß validiert werden.

Wenn Sie diese Tipps befolgen, können Sie einen sichereren SSL-Kontext erstellen, der dazu beitragen kann, vertrauliche Daten zu schützen und sicherzustellen, dass die Kommunikation privat bleibt.

import ssl

context = ssl._create_unverified_context()
urllib.request.urlopen(req, context=context)

Beheben Sie den Fehler SSL: CERTIFICATE_VERIFY_FAILED, indem Sie einen nicht verifizierten HTTP-Kontext in SSL erstellen

In SSL kann ein unverifizierter HTTP-Kontext erstellt werden, indem einfach die Überprüfung des Zertifikats des Servers weggelassen wird. Dies wird nicht empfohlen, da es den Client anfällig für Man-in-the-Middle-Angriffe macht.

In einigen Fällen kann dies jedoch erforderlich sein, z. B. beim Herstellen einer Verbindung zu einem Server, der ein selbstsigniertes Zertifikat verwendet.

import ssl

ssl._create_default_https_context = ssl._create_unverified_context
urllib2.urlopen("https://google.com").read()

Beheben Sie den Fehler SSL: CERTIFICATE_VERIFY_FAILED mit dem Befehl pip

Um Ihr SSL-Zertifikat mit pip zu aktualisieren, stellen Sie sicher, dass Sie die neuste Version von pip installiert haben. Sie können dies tun, indem Sie den folgenden Befehl ausführen:

pip install --upgrade pip

Sobald Sie die neueste Version von pip haben, können Sie den folgenden Befehl ausführen, um Ihr SSL-Zertifikat zu aktualisieren:

pip install --upgrade certifi

Wenn Sie Ihr SSL-Zertifikat aus einem bestimmten Grund aktualisieren müssen, können Sie die Option --force-reinstall mit dem Befehl pip verwenden. Dadurch wird pip gezwungen, das zertifizierte Paket neu zu installieren und alle vorhandenen Dateien zu überschreiben:

pip install --upgrade certifi --force-reinstall

Beheben Sie den Fehler SSL: CERTIFICATE_VERIFY_FAILED mit dem Requests-Modul

Die Python-Requests-Bibliothek ist ein großartiges Tool zum Erstellen von HTTP-Anfragen. Manchmal müssen Sie die Option ssl_verify auf False setzen, um die SSL-Verifizierung zu umgehen.

Dies kann nützlich sein, wenn Sie versuchen, eine Verbindung zu einem Server mit einem ungültigen oder selbstsignierten SSL-Zertifikat herzustellen. Denken Sie daran, dass es im Allgemeinen nicht empfohlen wird, diese Option auf False zu setzen, da Sie dadurch anfällig für Man-in-the-Middle-Angriffe werden können.

requests.get(url, headers=Hostreferer, verify=False)

Abschluss

SSL ist ein Protokoll, das Sicherheit und Vertrauen zwischen einem Server und einem Client bietet. Es wird in vielen Fällen verwendet, in denen Sie vertrauliche Informationen schützen müssen, z. B. wenn Sie Ihre Kreditkarte in einem Geschäft verwenden.

Was ist das Problem? Es gibt ein Problem mit der Bibliothek python-requests bei der Verwendung von SSL.

Wenn Sie Python verwenden, um Anfragen an einen Server zu stellen, der SSL verwendet, überprüft die Bibliothek standardmäßig das Zertifikat, um sicherzustellen, dass es vertrauenswürdig ist. Das Problem ist, dass die standardmäßige Python-Installation nicht für jedes mögliche SSL-Zertifikat ein Stammzertifikat enthält.

Wenn Sie Anforderungen an Server senden, die selbstsignierte SSL-Zertifikate oder Zertifikate von einer Zertifizierungsstelle verwenden, die sich nicht im Python-Zertifikatspeicher befindet, führt dies dazu, dass Anforderungen fehlschlagen. Ein HTTP-Fehler wird mit dem Fehlercode des SSL-Fehlers ausgelöst.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Verwandter Artikel - Python Error