(SSL: Fehler: 02001002: Systembibliothek: fopen: Datei oder Verzeichnis nicht gefunden: fopen('/var/dis (…)
Ich befolge den Leitfaden, kann aber nichts zu diesem Fehler finden.
Hallo @slivo
Mal sehen, was dabei herauskommt:
cd /var/discourse/shared/standalone/ssl
ls -l
Gibt es Hinweise?
cd ssl: Datei oder Verzeichnis nicht gefunden
Hey @slivo,
dies deutet darauf hin, dass dein Lets-Encrypt-Setup beim letzten Neustart deines Containers keine Zertifikate erstellt hat.
Natürlich weißt du das sicher schon!
Ich hatte diese Woche eine Installation, die ähnlich fehlgeschlagen ist. Vielleicht versuche es einmal mit:
./launcher rebuild app
Ich habe es erneut neu aufgebaut. Ich habe es gemäß den Richtlinien eingerichtet. Zertifiziertes SSL konfiguriert (/etc/nginx/sites-enabled/discourse.conf), aber ich bekomme einen Fehler:
SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE
Ich kann mit Nginx überhaupt nicht starten.
nginx.service: Control process exited, code=exited status=1
nginx.service: Failed with result 'exit-code'.
Process: 3840 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 25108 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=1/FAILURE)
// Starten des Hochleistungs-Webserver- und Reverse-Proxy-Server fehlgeschlagen.
Hallo @slivo,
vielen Dank für das Update zur Einrichtung.
Richtest du Discourse mit dem Standard-Docker-Image ein, ohne einen Reverse-Proxy außerhalb des Containers?
Ja, und ich verwende außerdem diese Anleitung: Run other websites on the same machine as Discourse
Hallo @slivo,
Der obige Link beschreibt, wie man Discourse in einem Docker-Container betreibt, der die Anwendung über einen UNIX-Socket an einen Reverse-Proxy weitergibt.
In diesem Fall solltest du SSL in der yml-Datei des Containers NICHT aktivieren; stattdessen solltest du SSL mit Let’s Encrypt und certbot AUSSERHALB des Containers, ausschließlich am Reverse-Proxy, konfigurieren.
Die allgemeine Architektur auf hoher Ebene sieht wie folgt aus:
WEBBENUTZER <-- HTTPS --> REVERSE-PROXY <-- HTTP --> DOCKER-CONTAINER
Bitte poste deine yml-Datei, wobei du dein Passwort und deine E-Mail-Adressen durch xxxx ersetzt hast; dann können wir uns ansehen, was bei dir läuft.
Vielen Dank.
Aber jetzt verstehe ich es nicht. Dann habe ich mit certbot ein neues Zertifikat erstellt. Und ich habe es hier so:
/etc/letsencrypt/live/myadress.com/fullchain.pem
Ihre Schlüsseldatei wurde gespeichert unter:
/etc/letsencrypt/live/myadress.com/privkey.pem
Muss ich die Adresse in dieser Datei ändern oder in /etc/nginx/sites-enabled/discourse.conf, oder mache ich das völlig falsch?
Hallo @slivo,
Wenn du einen Reverse-Proxy vor einer anderen Anwendung mit einer Nginx-Instanz konfigurierst: Du musst sehr genau angeben, wo sich die Konfigurationsdateien befinden – im Container oder außerhalb?
Ich bin mir nicht sicher, ob ich das vollständig verstehe. Ich möchte einfach Discourse hinter nginx betreiben. Ich habe keine andere Anwendung auf dem Server, aber ich möchte das tun, um von außen besser geschützt zu sein.
Hallo @slivo,
ich verstehe deine Frustration. Lass es mich dir gerne erklären.
In einem deiner vorherigen Beiträge sagst du:
/etc/letsencrypt/live/myadress.com/fullchain.pem
Deine Schlüsseldatei wurde gespeichert unter:
/etc/letsencrypt/live/myadress.com/privkey.pem
Du hast nicht erwähnt, ob du dich im Docker-Container befindest oder außerhalb davon.
Wie du weißt, läuft nginx (in deinem Fall) sowohl direkt auf dem Host als auch innerhalb der App (im Docker-Container).
Wenn du schreibst:
/etc/letsencrypt/live/myadress.com/fullchain.pem
Deine Schlüsseldatei wurde gespeichert unter:
/etc/letsencrypt/live/myadress.com/privkey.pem
wie können wir als Außenstehende dann genau wissen, worauf du dich beziehst, wenn du nicht die vollständigen Informationen postest? Befindet sich diese Konfiguration innerhalb oder außerhalb des Containers? Wir können zwar “vermuten” und “annehmen”, dass du dich auf den Bereich außerhalb des Containers beziehst, aber da du diese Details nicht bereitstellst, können wir nicht mit Sicherheit wissen, wie es wirklich ist. Meine Erfahrung zeigt, dass der kürzeste Weg von einem Problem zur Lösung darin besteht, nichts vorauszusetzen und genau auf die Details zu achten.
Außerdem hast du deine yml-Datei nicht gepostet. Ebenso hast du deine nginx
Konfigurationsdateien außerhalb des Containers nicht veröffentlicht. Daher können wir nicht “sehen”, was du tatsächlich in deiner Konfiguration machst.
HTH