Michael_K: fetch funktioniert nicht mehr nachdem SSL Zertifikat abgelaufen war und nun erneuert ist

Hallo,

ich hoffe, dass mir jemand bei der Ursachensuche weiterhelfen kann.

Ausgangslage:

  • nginx als reverse-proxy, der auf 443 mit SSL-Zertifikat lauscht

  • Zertifikat war abgelaufen ud wurde nun erneuert, nginx neu gestart und Webseite ist wieder normal im Browser erreichbar (gehostet bei Strato)

  • API-Schnittstelle, die json-Daten ausliefert, funktioniert auch wieder, wenn man die URL im Browser eingibt --> Anzeige der json-Daten im Web-Browser

  • Zugriff via fetch() aus einer Nodejs Anwendung funktioniert nicht mehr --> Fehlermeldung "fetch failed"

  • Wenn ich in der Nodejs-Anwendung axios statt fetch verwende, kommt eine Fehlermeldung mit Verweis auf certificate

  • Wenn ich axios mit option https.Agent({rejectUnauthorized:false}) verwende, funktioniert die Abfrage

  • Vor Ablauf und der Erneuerung des Zertifikats hat es auch mit fetch() ganz normal in der Nodejs Anwendung funktioniert.

Woran kann es liegen? Ich vermute, dass die Ursache irgendwo mit den Zertifikaten zusammenhängt. Aber nginx started ganz normal und auch im Browser wird mir die Web-Application ganz normal angezeigt, gültiges Zertifikat etc. Werde noch wahnsinnig.

Gruss Michael

  1. Woran kann es liegen? Ich vermute, dass die Ursache irgendwo mit den Zertifikaten zusammenhängt. Aber nginx started ganz normal und auch im Browser wird mir die Web-Application ganz normal angezeigt, gültiges Zertifikat etc. Werde noch wahnsinnig.

    Mach mal die Gegenprobe und rufe von dem NodeJS-Server (z.B. mittels Curl) einen analogen Request. Vermutung: wird ebenfalls scheitern.

    Womöglich liegen auf dem NodeJS-Server selbst noch alte Root-Certs rum, die mit den nun neueren Zertifikaten nicht mehr klarkommen... Server generell aktualisieren oder die Certs auf dem Server aktualisieren...

    1. Hallo,

      danke für die Info. Ich konnte das Problem lösen. Ich habe einen Online SSL-Zertifikatstest durchgeführt. Dort wurde dann offensichtlich, dass die Zertifikatskette nicht geschlossen vorlag. Ich habe wohl beim Zusammenfügen irgendwo ein ungültiges Zeichen mit eingeschleust. Habe dann die Zertifikatskette (nginx benötigt dies in einer Datei) noch einmal neu erstellt und siehe da, es funktioniert nun wieder ohne Probleme. Zeigt aber auch, dass der Browser die Zertifikatskette nicht vollständig prüft, was ja auch irgendwie bedenklich ist.

      Gruss Michael

      1. Hallo

        Zeigt aber auch, dass der Browser die Zertifikatskette nicht vollständig prüft, was ja auch irgendwie bedenklich ist.

        Zumindest im LibreWolf (Firefox-Fork) gibt es unter „Datenschutz & Sicherheit“ zertifikatsbezogene Einstellungen, deren erste für mich danach aussieht, als würde sie das von dir Gewünschte steuern.

        Screenshot der Browsereinstellungen dews LibreWolf-Browsers, Abschnitt „Datenschutz & Sicherheit“, „Zertifikate“ aktivierbar sind die Einstellungen „Aktuelle Gültigkeit von Zertifikaten durch Anfrage bei OCSP-Server bestätigen lassen“ und „LibreWolf erlauben, Stammzertifikaten von Drittanbietern, die Sie installieren, automatisch zu vertrauen“

        Im Fiorefox gibt es die selben Einstellungen. Ob und wie das in Chrome-basierten Browsern funktioniert, vermag ich nicht zu sagen.

        Tschö, Auge

        --
        „Habe ich mir das nur eingebildet, oder kann der kleine Hund wirklich sprechen?“ fragte Schnapper. „Er behauptet, nicht dazu imstande zu sein“ erwiderte Victor. Schnapper zögerte (…) „Nun …“ sagte er schließlich, „ich schätze, er muss es am besten wissen.“ Terry Prattchett, Voll im Bilde