Die Selbstprüfung erfolgt, bevor ein Zertifikat ausgestellt wird.
Was ist mit iptables?
Siehe dieses Beispiel aus dem Oracle Trial Install Guide: Install Discourse on Oracle Cloud Free Tier
Sie können diese Protokolle überprüfen:
/var/log/nginx/error.log
/var/log/apache2/error.log
/var/log/nginx/access.log
/var/log/apache2/access.log
/var/log/syslog
/var/log/dmesg
Und die Discourse-Protokolle mit docker logs your-container (oder) Ihrer Protokolldatei, wenn Sie ohne Docker hosten.
Hier gibt es zu viele mögliche Probleme:
- DNS- oder SSL-Problem (häufiger).
- Firewall-, Routing- oder Netzwerkkonfigurationsfehler.
- Datenbank-, Caching-, Discourse-Dienste.
Ohne Protokolle oder weitere Informationen ist es fast unmöglich, weiteren Rat zu geben.
Der nächste Schritt ist so einfach wie das Speichern der Zertifikatsdatei als ssl.crt und ssl by category.key und das Ziehen in das Serververzeichnis /var/discourse/shared/standalone/ssl/ssl.crt und /var/discourse/shared/standalone/ssl/ssl.key
Ich habe das Beispiel gesehen, das Sie mir gegeben haben. Ich habe alle Schritte befolgt.
Der einzige Unterschied ist, wenn ich ausführe: netfilter-persistent save
Ich antworte nichts, im Gegensatz zum Beispiel, wo man sehen kann, dass es run-parts: … antwortet

Ich habe versucht, Discourse von Anfang an zu installieren und führe vorher diese 2 iptables aus:
iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -i ens3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
Ich erhalte dieses Problem:
Ports 80 und 443 sind frei für die Nutzung
‘samples/standalone.yml’ → ‘containers/app.yml’
2 GB Arbeitsspeicher und 1 physische CPU-Kerne gefunden
db_shared_buffers = 256MB gesetzt
UNICORN_WORKERS = 4 gesetzt
Speicherparameter von containers/app.yml aktualisiert.
Hostname für Ihr Discourse? [discourse.example.com]: mywebsite.fr
Überprüfung Ihres Domainnamens . . .
WARNUNG: Port 443 des Computers scheint über den Hostnamen mywebsite.fr nicht erreichbar zu sein.
WARNUNG: Die Verbindung zu http://mywebsite.fr (Port 80) schlägt ebenfalls fehl.
Dies deutet darauf hin, dass mywebsite.fr auf eine IP-Adresse aufgelöst wird, die diese Maschine, auf der Sie Discourse installieren, nicht erreicht.
Das erste, was Sie tun sollten, ist zu überprüfen, ob mywebsite.fr auf die IP-Adresse dieses Servers aufgelöst wird.
Dies tun Sie normalerweise dort, wo Sie die Domain erworben haben.
Wenn Sie sicher sind, dass die IP-Adresse korrekt aufgelöst wird, könnte es sich um ein Firewall-Problem handeln.
Eine Websuche nach “open ports YOUR CLOUD SERVICE” könnte hilfreich sein.
Dieses Tool ist nur für die gängigsten Installationen konzipiert. Wenn Sie das obige Problem nicht lösen können, müssen Sie containers/app.yml selbst bearbeiten und dann eingeben
Hallo @satonotdead
Ich habe nachgesehen, ich habe diesen Ordner nicht /var/log/nginx /var/log/apache2
Ich bin mir nicht sicher, ob ich @xiaokong23357 verstehe.
Meinen Sie, ich kann die HTTP-Konfiguration installieren, indem ich die HTTPS-Zeile in der app.yml auskommentiere und danach diesen Schritt manuell ausführe:
die Zertifikatsdatei als ssl.crt und ssl by category.key speichern und sie in das Serververzeichnis /var/discourse/shared/standalone/ssl/ssl.crt und /var/discourse/shared/standalone/ssl/ssl.key ziehen
Hallo,
Ich habe die app.yml manuell geändert. Jetzt erhalte ich folgende Meldung in meinem Browser:
Willkommen bei nginx!
Wenn Sie diese Seite sehen, ist der nginx-Webserver erfolgreich installiert und funktioniert. Weitere Konfigurationen sind erforderlich.
Weitere Online-Dokumentationen und Support finden Sie unter nginx.org.
Kommerzieller Support ist verfügbar unter nginx.com.
Vielen Dank, dass Sie nginx verwenden.
Und es scheint, dass ich SSL erhalte, weil: /var/discourse/shared/standalone/ssl# ls -l
total 8
-rw-r–r-- 1 root root 0 Mar 3 01:00 mydomain.fr.cer
-rw------- 1 root root 3243 Mar 3 01:00 mydomain.fr.key
-rw-r–r-- 1 root root 0 Mar 3 01:01 mydomain.fr_ecc.cer
-rw------- 1 root root 227 Mar 3 01:01 mydomain.fr_ecc.key
Was kann ich jetzt tun? Wie kann ich die angeforderte Konfiguration durchführen?
Tatsächlich, wenn Sie das Vorlagenobjekt „templates/web.ssl.template.yml“ in app.yml einführen, hat Ihre Website bereits begonnen, die HTTPS-Kommunikation zu nutzen, und ich habe oben die Konfigurationsmethode für SSL-Zertifikate beschrieben.
Außerdem wird nginx im Allgemeinen verwendet, wenn Sie mehrere Websites auf Ihrem Server ausführen, und Sie können es ignorieren, wenn Sie nur Discourse ausführen.
Das ist in Ordnung, da Sie eine einzelne Instanz ausführen, aber ich frage nur, weil das etwas zu überprüfen ist.
Sie sind fast fertig, müssen nur noch den Schritt zur Erstellung von SSL-Zertifikaten überprüfen, wie Snow Love sagte.
Ich vermute, Sie haben einige der Richtlinien ignoriert, freundlicher Tipp → es ist besser, sich Zeit beim Lesen von Dokumenten und Richtlinien zu nehmen (für unsere eigene Zeit, meine ich).
Viel Glück ![]()
@xiaokong23357 Ich benutze nur Discourse. Wie kann ich es ignorieren?
Hallo @satonotdead
Entschuldigung, auf welche Richtlinien beziehen Sie sich?
Ich habe dieses Dokument befolgt: discourse/INSTALL-cloud.md at main · discourse/discourse · GitHub
Wie kann ich das tun: Ich muss den Schritt zur Erstellung von SSL-Zertifikaten überprüfen, wie Snow Love sagte.
Ich habe das in /var/discourse/shared/standalone/ssl gefunden# ls -l
total 8
-rw-r–r-- 1 root root 0 Mar 3 01:00 mydomain.fr.cer
-rw------- 1 root root 3243 Mar 3 01:00 mydomain.fr.key
-rw-r–r-- 1 root root 0 Mar 3 01:01 mydomain.fr_ecc.cer
-rw------- 1 root root 227 Mar 3 01:01 mydomain.fr_ecc.key
Schau dich an, ich benutze hier kein nginx für mein Deployment
Wenn Sie nginx verwenden müssen, fügen Sie „-80:80“ in expose ein
#http „Ändern zu“ – „9090:80“ # http stellt sicher, dass nginx an Discourse weitergeleitet werden kann
Ich verstehe nicht, warum ich dieses Nginx-Problem habe. Ich habe nie darum gebeten, Nginx zu verwenden.
Sie meinen, ich muss die Datei app.yml ändern zu:
expose:
- “9090:80” # http" stellt sicher, dass Nginx an Discourse weitergeleitet werden kann
- “443:443” # https
Ja, um Nginx zu verwenden, müssen Sie den HTTP-Proxy-Port ändern. Wenn Sie kein Nginx verwenden, ändern Sie den HTTP-Port 9090 in 80.
@Titi, was ist das Ergebnis der Ausführung dieses Befehls?
apt list | grep nginx
Ich denke, da Sie die generische Standard-Nginx-Indexseite erhalten haben, ist Nginx auf Ihrem VPS tatsächlich installiert und verursacht Ihr Problem.
Discourse verwendet Nginx auch intern, aber Sie bräuchten eine stark fehlerhafte Installation, damit das interne Nginx diese Seite anzeigt.
Einfacher ist es, systemctl status nginx auszuführen. Wenn der Status “alive” ist, stoppen Sie ihn mit systemctl stop nginx und um sicherzugehen, dass es so bleibt, führen Sie systemctl disable nginx aus.
Und nach all dem überprüfen Sie noch einmal, ob Sie in app.yml immer noch 80:80 und 443:443 weiterleiten. Das ist alles.
