Alle Standorte aktiv · 99.99% Uptime
Protokolle

Proxy und TLS-Zertifikatsprüfung

Ein Zertifikatsfehler nach der Proxy-Konfiguration kann auf zwei voellig verschiedene Dinge hindeuten: entweder auf eine zwischengeschaltete Pruefebene oder auf eine einfache Konfigurationsluecke. Beides zu unterscheiden ist fuer Ihre Sicherheit entscheidend.

Was sollte im Normalfall passieren?

In einem korrekt konfigurierten CONNECT-Tunnel ruehrt der Proxy das Zertifikat ueberhaupt nicht an. Der TLS-Handshake findet direkt zwischen Client und Zielserver statt; der Proxy transportiert lediglich verschluesselte Bytes. Das Zertifikat ist somit das echte Zertifikat der Zielseite.

ABBILDUNGZertifikatsfluss in einem intakten Tunnel
NORMALClientProxyZielserverCONNECT-Anfrage200 establishedClientHelloBytes weiterleitenEchtes ZertifikatDer Proxy sieht das Zertifikat, kann es aber nicht veraendern

In diesem Ablauf ist kein Zertifikatsfehler zu erwarten. Tritt einer auf, wurde entweder dazwischengeschaltet oder der Zertifikatsspeicher des Clients ist unvollstaendig.

Fehlerursachen

ABBILDUNGUrsachen von Zertifikatsfehlern bei Proxys
DIAGNOSECODE / SYMPTOMMOEGLICHE URSACHELOESUNGunable to get local issuercertificateStammzertifikatsspeicher des Clients unvollstaendig/veraltetAktualisieren Sie das CA-Paket (ca-certificates)self signed certificate inchainEine zwischengeschaltete Pruefebene ist vorhandenUnternehmens-Stammzertifikat pruefen und hinzufuegencertificate has expiredDas Zertifikat des Ziels ist abgelaufen oder die System-zeit ist falschPruefen Sie die Systemzeithostname mismatchSNI und Zertifikatsname stimmen nicht uebereinPruefen Sie Zieladresse und Proxy-KonfigurationAnwendung startet nicht(Pinning)Certificate Pinning weist die Zwischenschaltung zurueckNutzen Sie einen Kanal ohne TLS-Interception

Die zweite Zeile ist ein Warnsignal: Befindet sich ein selbstsigniertes Zertifikat in der Kette, wird Ihr Traffic moeglicherweise mitgelesen.

Wie erkennt man SSL Inspection?

ABBILDUNGDie Zertifikatskette pruefen
Terminal01# Wer hat das Zertifikat ueber den Proxy signiert?02curl -v -x http://proxy.example.com:8080 https://example.com 2>&1 \\03 | grep -E "subject:|issuer:|SSL certificate"0405# Vergleichen Sie mit einer direkten Verbindung06curl -v https://example.com 2>&1 | grep -E "subject:|issuer:"0708# Unterscheidet sich der Issuer in beiden Ausgaben, wurde dazwischengeschaltet0910# Detaillierte Kette mit openssl11openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null \\12 | openssl x509 -noout -issuer -subject -dates

Weichen die issuer -Werte in beiden Ausgaben voneinander ab, fuehrt der Proxy eine TLS-Interception durch und kann Ihren Traffic mitlesen.

Sicherheitshinweis

Einen Zertifikatsfehler mit -k oder verify=False stummzuschalten loest das Problem nicht — es macht es lediglich unsichtbar. Das bedeutet, jedem Zwischengeschalteten das Mitlesen Ihres Traffics zu erlauben. Verwenden Sie das niemals in der Produktion.

Die richtigen Loesungen

01

Aktualisieren Sie den Stammzertifikatsspeicher

Das ist die haeufigste Ursache. Unter Linux update-ca-certificates, in Python über einen mit certifi Aktualisieren Sie das Paket.

02

Unternehmens-Stammzertifikat geprueft hinzufuegen

Wenn Sie sich in einem Unternehmensnetzwerk befinden und die Richtlinie dies vorsieht, fuegen Sie das von der IT-Abteilung erhaltene Stammzertifikat dem Vertrauensspeicher Ihres Clients hinzu. Fuegen Sie niemals ein aus dem Internet heruntergeladenes Zertifikat hinzu.

03

Pruefen Sie die Systemzeit

Eine falsche Systemzeit laesst gueltige Zertifikate als "abgelaufen" erscheinen. Das kommt bei virtuellen Maschinen haeufig vor.

04

Nutzen Sie einen Kanal ohne TLS-Interception

Anwendungen mit Certificate Pinning akzeptieren keine Zwischenschaltung. In diesem Fall sind mobile Daten oder eine direkte Verbindung erforderlich.

Anwendungsspezifische Zertifikatsspeicher

Nicht jede Anwendung nutzt den Vertrauensspeicher des Systems. Das erklaert die Situation "im Browser funktioniert es, in meinem Skript nicht":

UmgebungZertifikatsspeicherMethode zum Hinzufuegen
Linux-Systemwerkzeuge/etc/ssl/certsupdate-ca-certificates
Python (requests)certifi-PaketREQUESTS_CA_BUNDLE -Variable
Node.jsIntegrierter SpeicherNODE_EXTRA_CA_CERTS -Variable
Javacacerts keystorekeytool -import
FirefoxEigener SpeicherEinstellungen → Zertifikate
ChromeSystemspeicherBetriebssystemeinstellung
ABBILDUNGEin zusaetzliches Stammzertifikat in der Anwendung bekannt machen
Umgebungsvariablen01# Python requests02export REQUESTS_CA_BUNDLE=/pfad/unternehmens-root.pem0304# Node.js05export NODE_EXTRA_CA_CERTS=/pfad/unternehmens-root.pem0607# curl08curl --cacert /pfad/unternehmens-root.pem -x http://proxy.example.com:8080 https://example.com0910# Git11git config --global http.sslCAInfo /pfad/unternehmens-root.pem1213# Systemweit unter Linux (mit Vorsicht)14sudo cp unternehmens-root.crt /usr/local/share/ca-certificates/15sudo update-ca-certificates

Ein systemweit hinzugefuegtes Zertifikat gilt fuer saemtliche Anwendungen als vertrauenswuerdig. Tun Sie das nur bei Zertifikaten, deren Herkunft Sie sicher kennen.

Certificate Pinning

Manche mobilen Anwendungen und Banking-Clients verankern das Serverzertifikat innerhalb der Anwendung. Sehen sie ein zwischengeschaltetes Zertifikat, weisen sie die Verbindung zurueck — kein hinzugefuegtes Stammzertifikat aendert dieses Verhalten.

Das ist der Grund fuer die Beschwerde "im Unternehmens-WLAN startet die App nicht, ueber mobile Daten schon". Die einzige Loesung ist, fuer diese Anwendung einen Kanal ohne TLS-Interception zu nutzen.

Zusammenfassung

In einem intakten CONNECT-Tunnel ruehrt der Proxy das Zertifikat nicht an; sehen Sie einen Fehler, ist entweder der Stammspeicher Ihres Clients unvollstaendig oder eine zwischengeschaltete Pruefebene vorhanden. Um beide Faelle zu unterscheiden, vergleichen Sie den Wert in der Zertifikatskette issuer mit dem einer direkten Verbindung. Die Pruefung zu deaktivieren ist keine Loesung, sondern macht das Risiko lediglich unsichtbar. Um zu sehen, was Ihre Verbindung tatsaechlich preisgibt, koennen Sie Anonymitätstest unser Werkzeug nutzen.

Häufig gestellte Fragen

01Warum erhalte ich bei der Proxy-Nutzung einen Zertifikatsfehler?

Dafuer gibt es zwei Hauptgruende: Der Stammzertifikatsspeicher Ihres Clients ist unvollstaendig oder veraltet, oder eine zwischengeschaltete Pruefebene (SSL Inspection) veraendert das Zertifikat.

02Kann ich die Zertifikatspruefung deaktivieren?

Technisch ist das moeglich, aber tun Sie es nicht. Wenn Sie die Pruefung deaktivieren, kann jeder Zwischengeschaltete Ihren Traffic mitlesen und veraendern. Beheben Sie stattdessen die eigentliche Ursache.

03Woran erkenne ich, dass jemand dazwischengeschaltet ist?

Vergleichen Sie die Issuer-Angabe des Zertifikats ueber den Proxy mit der einer direkten Verbindung. Weichen sie voneinander ab, ist eine zwischengeschaltete Ebene im Spiel.

04Sollte ich das Unternehmens-Stammzertifikat hinzufuegen?

Wenn Sie in einem Unternehmensnetzwerk arbeiten und die Richtlinie dies vorsieht, ja — beziehen Sie das Zertifikat jedoch ausschliesslich von Ihrer IT-Abteilung. Fuegen Sie niemals ein aus dem Internet heruntergeladenes Stammzertifikat in Ihren Vertrauensspeicher ein.

05Warum startet die Anwendung im Unternehmensnetzwerk gar nicht?

Moeglicherweise nutzt sie Certificate Pinning. Solche Anwendungen verankern das Serverzertifikat intern und weisen ein zwischengeschaltetes Zertifikat zurueck. Das Hinzufuegen eines Stammzertifikats aendert dieses Verhalten nicht.

Verwandte Beiträge und Seiten

NÄCHSTER SCHRITT

Stärken Sie Ihre Proxy-Infrastruktur noch heute.

Starten Sie mit den kostenpflichtigen Paketen in wenigen Minuten oder testen Sie zuerst unsere kostenlose Proxy-Liste.

FREEPROXY.TR

Wenn Sie einen kostenlosen Proxy suchen, sind Sie hier richtig

Eine umfassende Proxy-Plattform: aktuelle kostenlose Proxy-Adressen ansehen, HTTP- und SOCKS-Proxy-Typen vergleichen und Ihre Proxy-Verbindungen mit kostenlosen Tools prüfen.