Nach der Aktivierung von HTTPS funktioniert Discourse nicht mehr

Hallo,

nach der Aktivierung von Lets Encrypt-Vorlagen und dem Neuaufbau von Discourse funktioniert nichts mehr:

NGINX gibt einen kryptischen Fehler aus:

Das Seltsame ist: Es gibt kein nginx-Verzeichnis in /ETC.

Diese Vorlagen sind aktiv:

Das sind die Einstellungen, mit denen die App neu aufgebaut wurde:

Was könnte der Grund für dieses Problem sein?
Ich denke, das Zertifikat sollte für den Hostnamen discourse.itas-karlsruhe.de ausgestellt werden.

Ich habe bereits mit dem Launcher überprüft, ob die App tatsächlich läuft … Ja, sie läuft …

I.

Du scheinst dich in deinem Home-Verzeichnis (~) zu befinden, wenn du cd etc ausführst. cd /etc/nginx sollte funktionieren.

1 „Gefällt mir“

Nein, ich habe es im richtigen Verzeichnis geprüft:

Wenn es sich um eine Standard-Docker-Installation handelt, müssen Sie zusätzlich in die App wechseln.

cd /var/discourse
./launcher enter app

Wenn dies erfolgreich ist, können Sie Zeile 46 der Konfigurationsdatei mit sed ausgeben:

sed -n '46p' /etc/nginx/conf.d/discourse.conf

Mit denselben Vorlagen wie bei Ihnen und ohne spezifische Änderungen an dieser Konfigurationsdatei sehe ich Folgendes:

  return 301 https://discourse.softpress.com$request_uri;
1 „Gefällt mir“

Vielen Dank.
Ich habe Folgendes festgestellt:

image

Wie Sie sehen, ist das Feld „Discourse-Hostname" in der app.yml ausgefüllt:

Es sieht so aus, als würde der Hostname aus irgendeinem Grund nicht ersetzt werden, aber ich bin mir nicht sicher, warum das sein könnte. Hast du Discourse neu erstellt, indem du diese Befehle ausgeführt hast?

cd /var/discourse
./launcher rebuild app

Der einzige Unterschied, den ich zwischen deinem und meinem Setup erkennen kann, ist die Verwendung eines Bindestrichs im Domainnamen, aber ich wäre sehr überrascht, wenn das ein Problem verursachen würde.

Ja, so habe ich die App neu aufgebaut …

Nach dem Neuaufbau scheint alles zu funktionieren:

Wenn du mehrfach neu aufgebaut hast, hast du die Rate-Limits von Let’s Encrypt erreicht.

Auf dem Server gibt es kein nginx, da es sich im Discourse-Container befindet. Deshalb kannst du es nicht finden.

Du hast dein Problem also durch einen Neuaufbau gelöst?

Du solltest diesen Beitrag als Lösung markieren.

Ich habe lediglich gemeint, dass ich im Log keinen Fehler oder Ähnliches gefunden habe. (Siehe Screenshot)
Der Build-Prozess scheint in Ordnung zu sein …

Ich habe nun die finale Domain angefordert und werde die App damit neu erstellen.

Nachdem ich alle lets-encrypt-spezifischen Einstellungen entfernt und den ursprünglichen Hostnamen der VM verwendet habe, funktioniert alles. Ich weiß nicht, was mit diesen Einstellungen falsch ist.

Hallo Simon,

ich habe es erneut neu aufgebaut und festgestellt, dass das Zertifikat mit dem falschen Namen ausgestellt wurde:

Ist die app.yml möglicherweise falsch konfiguriert?

app.txt (4,1 KB)

Was meinst du damit?

Ich

Zeile 51

DISCOURSE_HOSTNAME: deinbalkonnetz.de

Das ist nicht deine Konfigurationsdatei. Woher hast du sie?

???

Es ist meine Konfigurationsdatei … Wir haben diese Domain auf unsere VM umgeleitet und ich versuche, Discourse auf diesem Server einzurichten …

Anschließend musst du überall in der Konfiguration deinbalkonnetz.de ändern.

Danach musst du die App neu erstellen.

Was meinst du mit „überall"?
Der Hostname wird nur in Zeile 51 verwendet …

Ich kenne keine anderen Konfigurationsdateien außer der app.yml …

Vielleicht hilft das weiter?

1 „Gefällt mir“

Danke, Jammy,

das sind wichtige Punkte, keine Frage.

Das Problem ist, dass mein Hostname überhaupt nicht verwendet wird:
DISCOURSE_HOSTNAME: ‘deinbalkonnetz.de

Ich denke, anstelle des Variablennamens sollte der echte Hostname „deinbalkonnetz.de" im Zertifikat verwendet werden.

Könntest du http://deinbalkonnetz.de/ als zweite Domain in das LetsEncrypt-Zertifikat aufnehmen, um dies als mögliche Workaround-Lösung zu testen?