SSL LetsEncrypt Erneuerung funktioniert nicht (wegen eines zusätzlichen Reverse-Proxys außen)

Das Zertifikat für meine Discourse-Instanz ist heute abgelaufen, und der Browser zeigt einen Fehler an. Ich habe versucht, die Erneuerung manuell durchzuführen, wie hier beschrieben:

Es wurde angezeigt, dass das Zertifikat erneuert wurde; ich kann es im Ordner /shared/letsencrypt sehen, und die Erneuerung verlief korrekt. Ich habe Nginx innerhalb von Docker neu gestartet und sogar die Instanz neu aufgebaut. Dennoch scheint weiterhin das alte Zertifikat gesendet zu werden.

Ich habe die Domain mit mehreren Seiten geprüft; alle geben an, dass das Zertifikat abgelaufen ist. Es handelt sich also nicht nur um ein lokales Problem.

Habe ich etwas übersehen?

Ich habe die gleichen Anweisungen vor 15 Tagen bereits ausgeführt.

cd /var/discourse
./launcher enter app
"/shared/letsencrypt"/acme.sh --cron --home "/shared/letsencrypt" --force
exit

Das Erste, was ich gelernt habe, ist, dass ein Zertifikat in Chrome möglicherweise als ungültig angezeigt wird, obwohl es tatsächlich gültig ist. Siehe: Chrome/Chromium-Fehler: SSL-Zertifikate zeigen falsche (abgelaufene) Daten an

Anschließend habe ich versucht:

me@site:/var/discourse$ sudo ./launcher rebuild app

was nicht funktionierte, und schließlich:

sudo reboot

Danach funktionierte die Seite wie erwartet.


Obwohl ich den Schritt mit rebuild erwähne, bin ich mir nicht sicher, ob er erforderlich ist. Es war jedoch ein Schritt, den ich auf dem Weg dorthin durchgeführt habe.

Nach stundenlangem Probieren und kurz nachdem ich diesen Beitrag verfasst hatte, wurde mir klar, dass ich aufgrund meiner Multi-Site-Bereitstellung mit einem Nginx-Reverse-Proxy auch den äußeren Nginx-Server neu starten musste. Danach funktionierte es sofort. Ich werde dies als Antwort markieren, falls jemand in eine ähnliche Situation gerät.

Ich denke, der letzte sudo reboot hat bei dir funktioniert, weil er nginx neu gestartet hat – genau das, was ich in meiner oben genannten Lösung gepostet habe.

Ein paar Anmerkungen dazu:

  • In der erwähnten Situation zeigt der Browser das Zertifikat in der Adressleiste nicht tatsächlich als ungültig an.
  • Je nach Betriebssystem kann es sein, dass es keine Warnung zum Zertifikatsdatum gibt, wenn man es sich ansieht.

Hast du die Grundursache dafür gefunden, warum das Zertifikat nicht automatisch erneuert wurde?

Auf der Seite habe ich festgestellt, dass dies daran liegt, dass sie nicht im Produktionsmodus läuft. Daher sind alle E-Mails gesperrt, einschließlich der E-Mails, die für die Zertifikatserneuerung zuständig wären.

image

Der Grund für die Sperrung der E-Mail ist, dass sie Teil des Prozesses zur Wiederherstellung der Datenbank ist. In diesem speziellen Fall wurde die Datenbank von einer anderen Discourse-Instanz wiederhergestellt.

Die E-Mail ist deaktiviert, um zu verhindern, dass zwei Sites dieselben E-Mails versenden.

Die einzige Rolle, die E-Mails dabei überhaupt spielen, besteht darin, dass Let’s Encrypt dir eine Warnung senden könnte, wenn dein Zertifikat abläuft und du es nicht erneuert hast.

OK. Danke. Jetzt muss ich die Ursache dafür finden, warum das Zertifikat nicht automatisch erneuert wurde.

Gibt es einen Grund, warum ein Zertifikat nicht erneuert wird?

In der Regel sind es Anpassungen, die den Prozess unerwartet unterbrechen. Ich würde einen neuen Beitrag eröffnen und dabei deine Details sowie die durchgeführten Änderungen darlegen.