Versuche, Discourse auf einem Bare-Metal-OVH-Server mit Fedora Server 38 neu zu installieren. Die Installation verlief problemlos, aber ich kann keine Verbindung über den Hostnamen herstellen, den ich in der app.yml angegeben habe: forums.dogsrv.dev.
Die OVH-Edge-Firewall ist deaktiviert, firewalld ist deaktiviert, iptables ist deaktiviert, DNS löst korrekt auf. Ich bin ratlos, was ich noch überprüfen soll. Jede Idee wäre willkommen.
Sie können sich /var/discourse/shared/standalone/log/var-log/nginx/production.log ansehen. Ich vermute, dass Sie von Let’s Encrypt wegen einer Ratenbegrenzung betroffen sind, weil die DNS oder etwas anderes die Ausstellung eines Zertifikats verhindert hat.
In diesem Fall können Sie eine Woche warten oder eine andere Subdomain verwenden (z. B. forum statt forums).
Haben Sie discourse-setup ausgeführt?
Seltsamerweise habe ich in diesem Ordner keine production.log, aber ich habe eine error.log, die nichts anderes enthält als diesen sich wiederholenden Fehler
2023/06/02 07:27:34 [emerg] 289163#289163: cannot load certificate "/shared/ssl/forums.dogsrv.dev.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
und tatsächlich, als ich diese Zertifikatsdatei überprüfte, war sie leer.
Ich habe discourse-setup anfänglich ausgeführt, aber es schlug immer fehl mit
Hostname for your Discourse? [forums.dogsrv.dev]:
Checking your domain name . . .
WARNING: Port 443 of computer does not appear to be accessible using hostname: forums.dogsrv.dev.
WARNING: Connection to http://forums.dogsrv.dev (port 80) also fails.
Was ich aufgrund der .dev TLD, die standardmäßig auf Googles HSTS-Preload-Liste steht, vermutete, also habe ich die app.yml manuell konfiguriert und ./launcher rebuild app ausgeführt, was anscheinend gut funktionierte.
Ich habe versucht, die Subdomain auf forum umzustellen und die App neu zu erstellen, aber immer noch das gleiche Problem und erhalte den gleichen Fehler wie zuvor, außer mit forum statt forums.
Haben Sie Ports in Ihrer Firewall außerhalb von Docker geöffnet?
Ja, firewalld ist komplett deaktiviert, zusammen mit iptables. Wenn ich Apache oder Nginx auf dem Server selbst manuell installiere und konfiguriere, kann ich sehen, dass der Datenverkehr auf den Ports 80 und 443 zugelassen wird, aber aufgrund von HSTS benötige ich eine aktivierte HTTPS-Weiterleitung für alle HTTP-Anfragen und ein funktionierendes SSL-Zertifikat, was im Moment das Problem darstellt.
Vielleicht sollten Sie dann die Ports 80 und 443 öffnen?
Es klingt immer noch so, als würde etwas den eingehenden Datenverkehr stören. Verwenden Sie Cloudflare für DNS?
Nein, ich benutze Google.
Wenn der Test, den Discourse-setup durchführt, fehlschlägt, müssen Sie die Erklärung dafür finden. Es ist ziemlich klar, dass er richtig ist und dass Let’s Encrypt kein Zertifikat zuweisen kann.
Da Sie wissen, wie man nginx und Apache installiert, können Sie versuchen, Let’s Encrypt ein Zertifikat ausstellen zu lassen, aber es ist ziemlich klar, dass es Port 80 und/oder 443 blockiert.
Das Problem war, dass discourse-setup mit neueren netcat-Versionen fehlerhaft ist, wie in diesem Pull Request zu sehen ist: https://github.com/discourse/discourse_docker/pull/697
Das Entfernen des Flags -p behebt, dass discourse-setup fälschlicherweise meldet, dass es keine Verbindung zu den Ports herstellen kann, und dann wird die Anwendung erfolgreich neu erstellt und ich kann mich jetzt problemlos mit meiner Installation verbinden.
Vielen Dank für die Hilfe.
Schön, dass es funktioniert hat! Ich bin verwirrt, warum der Rebuild das Zertifikat nicht abrufen konnte, da ich dachte, Sie würden den Rebuild durchführen und den discourse-setup-Schritt überspringen.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.