Discourse-Bereitstellung auf Lightsail: "Verbindung verweigert"

Hallo,

Ich habe kürzlich die Anleitung install-cloud befolgt, um Discourse auf einer AWS Lightsail-Instanz zu installieren. Trotz sorgfältiger Befolgung der Anweisungen und mehrfacher Neuanfänge erhalte ich leider die Fehlermeldung “connection refused”, wenn ich versuche, auf mein Forum zuzugreifen.

Die Schritte, die ich befolgt habe, waren:

  1. Eine neue Lightsail-Instanz erstellen
  2. Eine statische IP-Adresse zuweisen
  3. Port 443 öffnen
  4. Meine Subdomain (forum.procedural.audio) auf die IP-Adresse verweisen
  5. Die Discourse-Installationsbefehle in der Anleitung befolgen, einschließlich der Angabe einer E-Mail-Adresse für LETS_ENCRYPT
  6. Mein Forum aufrufen… Verbindung verweigert

Die Ausführung von ./discourse-doctor gibt aus, dass die Discourse-Version unter forum.procedural.audio NICHT GEFUNDEN wird. Ich kann erfolgreich eine Test-E-Mail von Discourse empfangen.

Die Ausführung von ping forum.procedural.audio empfängt keine Daten zurück, findet aber die korrekte statische IP.

Ich habe die folgenden Fehler in den Protokollen bemerkt:

$ ./launcher logs app
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
(wiederholt sich noch viele Male)

Es scheint also, dass das Problem SSL-bezogen ist, obwohl ich mir nicht sicher bin, wie ich es beheben kann. Im Verzeichnis shared/standalone/ssl/ befinden sich vier Dateien:

  1. forum.procedural.audio.cer (Datei ist leer)
  2. forum.procedural.audio.key (Datei enthält einen Schlüssel)
  3. forum.procedural.audio_ecc.cer (Datei ist leer)
  4. forum.procedural.audio_ecc.key (Datei enthält einen Schlüssel)

Ich bin mir also nicht sicher, ob die leeren .cer-Dateien Teil des Problems sind. Ich stelle jedoch auch fest, dass die Protokolle darauf hindeuten, dass nach der Datei unter /shared/ssl/* anstelle von /shared/standalone/ssl/* gesucht wird, was ebenfalls relevant zu sein scheint.

Vielen Dank für Ihre Hilfe.

1 „Gefällt mir“

Das Problem ist, dass Ihre Lightsail-Instanz extern nicht erreichbar ist. Das hat Ihnen discourse-doctor mitgeteilt – wenn Sie nur Port 443 geöffnet haben, ist das wahrscheinlich der Grund.

HTTPS über 443 funktioniert erst, wenn Sie ein Zertifikat haben. Sie haben kein Zertifikat (und diese Zertifikatsdateien sind leer), weil Let’s Encrypt aufgrund des Kommunikationsproblems keine Registrierung vornehmen konnte.

Wenn Sie eine statische externe Adresse zugewiesen haben, öffnen Sie auch Port 80 und versuchen Sie es erneut. 80 muss sowieso geöffnet sein, damit jeder Client, der über HTTP eine Verbindung herstellt, umgeleitet werden kann.

Ich habe das gerade überprüft und dieser Hostname ist ungültig. Das musst du zuerst beheben.

cannot resolve forum.procedural.audio: Unknown host
1 „Gefällt mir“

Standardmäßig sind die Ports 22 und 80 für Lightsail-Instanzen geöffnet. Daher glaube ich nicht, dass das Öffnen von Port 80 die Lösung ist.

Entschuldigen Sie, könnten Sie das bitte genauer erläutern? Inwiefern ist der Hostname ungültig?

forum.procedural.audio erscheint nicht in DNS, oder anders ausgedrückt, der Hostname wird keiner IP zugeordnet. Ich habe dies gerade über CloudFlare und Google DNS überprüft, keiner von beiden kann diesen Hostnamen finden. Wenn ich ihn nicht auflösen kann, dann kann es discourse-doctor auch nicht.

Wann haben Sie den ‘a’-Eintrag für Ihren Server erstellt? Haben Sie die Replikationszeiten überprüft?

Stellen Sie sicher, dass dies behoben ist, bevor Sie versuchen, den Server erneut zu erstellen. Let’s Encrypt gibt eine begrenzte Anzahl von Versuchen zur Registrierung/Erneuerung vor, und wenn Sie diese erreichen, können Sie sieben Tage lang kein Zertifikat erhalten.

1 „Gefällt mir“

Ich habe die Domain seit zwei Tagen bei Namecheap, die auf Route 53 verweist (die zusätzliche Indirektionsebene besteht darin, dass Route 53 keine .audio-Domains unterstützt). Der Haupteintrag für die Domain existiert seit den meisten dieser zwei Tage. Der Eintrag für die Subdomain existiert seit etwa einer Stunde.

Wenn dies das Problem gewesen wäre, dann würde ein ping forum.procedural.audio von meiner Instanz aus meiner Meinung nach die IP-Adresse nicht auflösen können. Aber die IP wird aufgelöst.

Es löst sich nicht extern, Let’s Encrypt verwendet DNS, um sicherzustellen, dass der Server das ist, was er vorgibt zu sein.

ping forum.procedural.audio                                                                                                               ✔  1909  10:59:47
ping: kann forum.procedural.audio nicht auflösen: Unbekannter Host

Hmm. Nun, https://dnschecker.org/#A/forum.procedural.audio zeigt, dass der Name an vielen Orten aufgelöst wird, also ist es vielleicht ein Weiterleitungsproblem. Wenn 1.1.1.1 oder 8.8.8.8 ihn abfragen, erhalte ich keine Antwort. NS-337.AWSDNS-42.COM gibt ihn jedoch zurück, sodass Sie möglicherweise nur eine Weile warten müssen.

Aber discourse-setup versucht, die Adresse abzurufen und zu sehen, ob es sich selbst verbinden kann. Wenn das fehlschlägt, ist es normalerweise entweder ein DNS-Problem oder dass Ports nicht geöffnet sind.

1 „Gefällt mir“

Hallo,

Es ist fast eine Woche her und ich kann immer noch kein Forum bereitstellen. Hat jemand weitere Ideen? Ports 80 und 443 sind offen. Ich glaube nicht, dass dies ein DNS-Problem ist – discourse-doctor findet die Discourse-Version nicht unter localhost (zusätzlich zu forum.procedural.audio). Jede Hilfe wird geschätzt.

nslookup.exe forum.procedural.audio
Server:  dns.google
Address:  8.8.8.8

*** dns.google kann forum.procedural.audio nicht finden: Server fehlgeschlagen

Es ist ein DNS-Problem.

3 „Gefällt mir“

Hmmm https://dnschecker.org/#A/forum.procedural.audio zeigt, dass es sich auf 31/32 Standorte verbreitet hat. Ich habe noch nie davon gehört, dass DNS-Einträge über 144 Stunden zur Verbreitung benötigen. Aber wenn ich jetzt https://www.nslookup.io/domains/forum.procedural.audio/dns-records/#cloudflare überprüfe, sehe ich, dass Cloudflare und Google es nicht auflösen können, obwohl der autoritative Server es kann.

Ich lag also falsch, bin mir aber nicht sicher, was ich tun soll. Ich bin mir nicht sicher, warum discourse-doctor die Discourse-Version nicht unter localhost finden kann.

Sie haben also ein DNS-Problem.

Und wenn Sie viele Neuerstellungen durchgeführt haben, haben Sie ein Problem mit der Ratenbegrenzung von Let’s Encrypt.

1 „Gefällt mir“