Das klingt nach einem Problem auf Ihrer Seite (also der Seite Ihrer Website).
Das vom Server bereitgestellte Zertifikat ist in Ordnung und wird von fast allen Browsern akzeptiert – das Problem ist, dass viele ältere Server das (relativ) neue Stammzertifikat nicht in ihrem Trust-Store haben, sodass derzeit viele automatisierte Prozesse Fehler melden.
Ich kenne Ihre genaue Website nicht, daher habe ich eine beliebige hosted-by-discourse.com-Seite ausgewählt und sie über den Qualys SSL Server Test laufen lassen.
Wie Sie sehen können, ist die Root-Zertifizierung des zweiten Zertifizierungspfads tatsächlich abgelaufen. Dies wird jedoch durch das ISRG Root X1-Zertifikat abgemildert, das sich im Trust-Store befindet (also in Ihrem Browser und/oder Betriebssystem enthalten ist) für den ersten Zertifizierungspfad.
Server aktualisieren ihren Trust-Store in der Regel nicht häufig, sodass Ihr Server das ISRG Root X1-Zertifikat wahrscheinlich nicht in seinem Trust-Store hat. (Das ist auch beim Mail-Empfänger-Docker-Image passiert).
Sie können ein aktuelles Bundle beispielsweise unter https://curl.se/ca/cacert.pem finden. Auf CentOS wird diese Datei nach /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem kopiert. Auf Ubuntu können Sie den Befehl update-ca-certificates verwenden, der /etc/ssl/certs/ca-certificates.crt aktualisiert.
Alternativ könnten Sie die SSL-Zertifikatsüberprüfung in Ihrem Servercode vorübergehend deaktivieren.
Ich habe die Ausgabe von OpenSSL gepostet, um zu beweisen, dass dies nichts mit unserer Website zu tun hat, und Postman wird von einer lokalen Windows-Maschine ausgeführt.
Edit: Ich bin mit den verschiedenen Ebenen der Trust Stores nicht so vertraut, ich werde mich noch etwas damit beschäftigen. Es tritt einfach auf jedem Gerät auf, das wir versuchen.
das ist eine Antwort, die ich von unserem DevOps-Mitarbeiter erhalten habe.
Das Problem besteht darin, dass es zwei Kopien von ISRG Root X1 gibt: Eine davon wurde vor langer Zeit von DST Root CA X3 ausgestellt, während die neuere von der ISRG (der Gruppe, die unter anderem Let’s Encrypt verwaltet) selbst signiert wurde. Diese selbstsignierte Root CA wird mittlerweile auf den meisten Systemen als vertrauenswürdige Root CA akzeptiert.
Es handelt sich um dasselbe Signaturzertifikat, sodass Sie alles, was als von „ISRG Root X1“ ausgestellt beansprucht wird, gegen beide Versionen validieren können. Das von DST signierte Zertifikat ist jedoch nicht mehr als Zertifizierungspfad gültig, da das DST-Zertifikat, das es signiert hat, mittlerweile abgelaufen ist.
Wenn der Server korrekt agieren würde und die neuere, selbstsignierte ISRG Root X1 bereitstellen würde, würde der Client das bereitgestellte Zertifikat mit seinem eigenen Vertrauensspeicher vergleichen, feststellen, dass es sich um dasselbe Zertifikat handelt, und die Verbindung akzeptieren. Stattdessen erkennt der Client das bereitgestellte Zertifikat, denkt: „Okay, ich muss dies gegen DST Root CA X3 validieren, die ich gespeichert habe … oh, das ist abgelaufen“ und scheitert bei der Verifizierung.
Ein Zertifikat in der Zertifikatskette anzubieten, das ohnehin im vertrauenswürdigen Root-CA-Speicher erwartet wird, ist keineswegs „das Richtige tun".
Entweder liegt dein DevOps-Mitarbeiter falsch, oder CDCK, LetsEncrypt und Qualys liegen alle falsch.
Sag ihm, er soll den Root-CA-Speicher aktualisieren. Das wird das Problem beheben. Glaub mir.
Hallo @bpaterson2000 – es tut uns leid zu hören, dass du Probleme bei der Verbindung zu unserem gehosteten Dienst hast. Wie @RGJ bereits erwähnt hat, liegt das Problem nicht auf Seite von Discourse – es muss auf deiner Client-Seite behoben werden. (Unsere Server stellen das Stammzertifikat nicht bereit; dieses wird von deinem Client verwaltet.)
Weitere Details zu dieser Änderung findest du bei Let’s Encrypt hier:
Vielen Dank für die Informationen. Für uns ist dies ein unerwartetes Problem, da die Fehler anscheinend vom gehosteten Server zurückkamen.
Wir nutzen Heroku, das die von dir erwähnten Komponenten offenbar über Node/Packages mitliefert. Es sieht so aus, als wäre das Aktualisieren von Node der Schlüssel gewesen, um die Verbindung zur Discourse REST-API wieder erfolgreich herzustellen.