Probleme mit SSL nach vielen Neukompilierungen

  1. Post in Folge… denn wenn ich etwas bearbeite, denke ich, dass es in neuen Antworten nicht angezeigt wird.

Ich habe alles getan, was Sie gesagt haben. Ich habe alles importiert. Der Importeur wurde gestoppt, die App wurde gestartet. Aber ich kann immer noch keine Verbindung zu meiner Website herstellen :frowning:

Firefox sagt: Hmm. Wir haben Schwierigkeiten, diese Website zu finden. Wir können keine Verbindung zum Server unter [meine Discourse-Website] herstellen.

…halte die Daumen in der Hoffnung, dass jemand die Antwort weiß

Es ist schwierig, eine Antwort mit so wenigen Informationen zu geben. Alles, was wir wissen, ist, dass deine Seite nicht erreichbar ist.

  • Hast du die Logs überprüft? Was sagen sie?
  • Hast du nach dem Start der App noch ein paar Momente gewartet? Es kann eine Weile dauern, bis die Seite erreichbar wird.

Angesichts der Anzahl der Beiträge hier, die speziell deinen Fall betreffen, wäre es wahrscheinlich sinnvoll, sie in ein separates Thema auszulagern, da dies nur teilweise mit dem Importer zusammenhängt.

Hallo Helmi, danke für deine Antwort. Ja, ich stimme zu, dass das vielleicht in ein anderes Thema gehört, aber da die Probleme begannen, als ich importierte, habe ich es zunächst hierher gestellt.

Zu deinen Fragen: Ich habe Discourse selbst auf einem DO-Droplet installiert. Alles funktionierte einwandfrei, auch der Import war bereits abgeschlossen. Allerdings musste ich einen kompletten Neuimport durchführen, weil ich vergessen hatte, die Pfade für die Smilies festzulegen. Deshalb musste ich alles löschen. Seitdem haben die Probleme begonnen.

Ich konnte mich einmal mit meinem Board verbinden, um mein Backup aller Einstellungen (Thema usw.) wiederherzustellen, bevor ich den Import durchführte. Dann musste ich den Import abbrechen, weil ich einen Fehler bei der Position der Smilies gemacht hatte, und musste also alles von vorne beginnen. Deshalb habe ich wieder alles gelöscht und dann neu importiert. (So dachte ich.)

Seitdem kann ich jedoch nicht mehr mit der Seite verbinden. Discourse Doctor sagt, dass alles in Ordnung ist, außer dass es die Version meines Discourse nicht finden kann. Was die Logs angeht: Bitte gib mir den entsprechenden Befehl, damit ich sie überprüfen kann. Ja, ich habe gewartet, und gewartet, und gewartet… immer noch keine Verbindung.

Ich bin wirklich ratlos, wo ich suchen muss, um dieses Problem zu lösen. Falls du irgendwelche Ideen hast, lass es mich bitte wissen :slight_smile:

Edit: Ich habe also herausgefunden, wie man die Logs überprüft… und sie sind voll mit SSL-Fehlern. Deshalb versuche ich jetzt, ein neues Zertifikat neu zu installieren, mit Hilfe von Set up HTTPS support with Let's Encrypt - ich hoffe wirklich, dass dies das Problem beheben wird.

SSL-Fehler bedeuten höchstwahrscheinlich, dass Sie bereits zu oft ein LE-Zertifikat angefordert haben. Ihre Domain könnte bei LE vorübergehend gesperrt sein. Schauen Sie genauer hin und verwenden Sie gegebenenfalls vorübergehend eine Subdomain, um dies zu umgehen.

Und für den Rest: Da Sie bei DO sind, machen Sie für die Zukunft bei DO jedes Mal ein Snapshot, sobald Sie einen Schritt erreicht haben, zu dem Sie im Falle von Problemen zurückkehren möchten.

Vielen Dank für den Tipp bezüglich Snapshots. Ich werde das beim nächsten Mal definitiv im Hinterkopf behalten!

Außerdem habe ich es geschafft, das Problem zu lösen, indem ich das SSL-Verzeichnis aus meinem Backup wiederhergestellt habe. Es stellt sich heraus, dass die Zertifikate irgendwie in Dateien von 0 KB umgewandelt wurden? Seltsam. Als ich die alten Dateien wiederhergestellt habe, konnte ich mich anmelden.

Danke an alle für eure Hilfe und Unterstützung. Und ich denke, meine früheren Beiträge würden jetzt eher in den Bereich Support / SSL passen (aber das wusste ich zum Zeitpunkt des Postens natürlich noch nicht).

Edit: Update – nach dem Neuaufbau der App scheint das SSL-Verzeichnis jedes Mal irgendwie gelöscht zu werden. Wird bei jedem Neuaufbau ein LE-Zertifikat angefordert? Wenn ja, dann verstehe ich, dass es so aussehen könnte, als hätte ich es zu oft angefordert… Ich habe so oft neu aufgebaut, um herauszufinden, was falsch lief.

Nein. Soweit ich weiß, prüft es das Verlängerungsdatum und erneuert es bei Bedarf.

Offenbar kann man innerhalb von sieben Tagen fünf Zertifikate erhalten:

Einer dieser Fehler klingt so, als ob Ihre Domain nicht auf die richtige IP-Adresse verweist.

Danke, JahDu. Dann finde ich es noch seltsamer, dass die SSL-Schlüssel nach einem Rebuild nicht korrekt gesetzt sind.

@Jay, das ist wirklich seltsam, denn es hat vorher funktioniert, mit derselben IP und allem. Die Domain zeigt auf die richtige IP.

Discourse läuft auf einer Subdomain meiner Hauptdomain, beide befinden sich auf verschiedenen Servern. Die Subdomain hatte eine andere IP als die Hauptdomain. Aber die Subdomain ist in den SSL-Einstellungen eingetragen.

Ich würde die app.yml noch einmal überprüfen, aber sie befindet sich mitten im Neuaufbau von 100.000 Beiträgen (damit ein Plugin funktioniert), und das dauert eine Weile …

Edit: Ich habe die app.yml noch einmal überprüft, aber seit der Zeit, als alles funktionierte, hat sich nichts geändert.
Wo sollte ich jetzt noch suchen?

Ich habe gerade einen weiteren Re-Import durchgeführt. Diesmal ohne die App neu zu bauen. Ich habe ein Backup wiederhergestellt und dann die phpbb3-Datenbank importiert. Nach dem Import waren die SSL-Schlüssel erneut durcheinander. Ich habe nichts neu gebaut, sondern nur die Container app.yml und import.yml gestartet und gestoppt.

Ich bin ratlos. Verdirbt die Wiederherstellung eines Backups über das Admin-CP die SSL-Einstellungen? Ich habe das SSL-Verzeichnis erst nach dem Import überprüft, daher weiß ich nicht, wann es passiert ist.

Wer kann hier bitte Licht ins Dunkel bringen?

Gibt es nähere Details zum SSL-Panne, etwa aus dem Log? Meine Vermutung wäre immer noch, dass deine Domain von Let’s Encrypt blockiert wurde, aber ohne Details aus dem Log ist es schwer, das zu sagen.

Das Problem besteht darin, dass die Dateien im SSL-Verzeichnis irgendwie überschrieben werden, sodass die .key- und/oder .cer-Dateien 0 KB groß sind, anstatt die erwarteten ca. 3 KB zu haben. Nur eine oder zwei davon werden auf 0 KB „beschädigt“, nicht alle. Ich löse das Problem, indem ich gesicherte Dateien wieder zurückkopiere, aber das ist nur eine Workaround-Lösung.

Die Logs (bevor ich die Dateien repariere) zeigen diesen Fehler immer wieder:

nginx: [emerg] cannot load certificate “/shared/ssl/[mydomain]_ecc.cer”: BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen(‘/shared/ssl/[domain]_ecc.cer’,‘r’) error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] cannot load certificate “/shared/ssl/[domain]_ecc.cer”: PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)

Bitte werfen Sie einen Blick auf /shared/letsencrypt/acme.sh.log im Container, um herauszufinden, was los ist.

Ahhh, ich wusste gar nicht, dass es dort auch Logs gibt :slight_smile: Danke für den Hinweis!

Da ist viel los, scheint so, als würden bei jedem Rebuild Zertifikate erneuert? Denn es gibt da viele „renew“-Vorgänge. Und @helmi hat recht, ich denke, das ist der hier, den du meinst:

[Sat 25 Jan 2020 06:48:31 PM UTC] Create new order error. Le_OrderFinalize not found. {
“type”: “urn:ietf:params:acme:error:rateLimited”,
“detail”: "Error creating new order :: too many certificates already issued for exact set of domains: $
“status”: 429

Also … wie komme ich da wieder raus?

Edit: Laut LetsEncrypt:

Wenn du das Limit erreicht hast, können wir es nicht vorübergehend zurücksetzen. Du musst warten, bis das Limit nach einer Woche abläuft.

Und dann habe ich Rate Limits - Let's Encrypt gefunden.

Also … ich denke, ich muss einfach eine Woche warten …

Edit2: Ich habe auf https://crt.sh/ nachgeschaut und sehe nur 10 Zertifikate für die letzte Woche? Nicht 50 …

Frage: Wann gilt ein Zertifikat als Erneuerung? Nur wenn eine Rebuild-App das macht, nehme ich an?

Haben Sie einen Hostnamen mit gemischten Groß- und Kleinschreibungen? Ich dachte, der Code konvertiert jetzt alles in Kleinbuchstaben, aber das ist nur eine Vermutung. Ich bin mir ziemlich sicher, dass ein Rebuild normalerweise kein neues Zertifikat anfordert, wenn das bestehende noch gültig ist.

Meinst du so, wie es in app.yml unter DISCOURSE_HOSTNAME definiert ist?
Nein, das ist alles in Kleinbuchstaben.

Die einzige Möglichkeit, die ich kenne, um dieses Limit zu erreichen, ist, wenn Ihre Zertifikatsanfragen aus irgendeinem Grund fehlschlagen.

Danke :slight_smile: Wie/wo kann ich prüfen, ob sie fehlschlagen? Weißt du, nach welchem Fehler ich in den Logs suchen sollte?

Wenn du ins LetsEncrypt-Forum gehst, ein neues Thema in der Kategorie Hilfe erstellst und das angezeigte Formular ausfüllst, können sie deine Domain(s) prüfen und dir mitteilen, ob und welche Probleme es geben könnte. Sie können dir auch helfen, etwaige Probleme zu beheben.
Als kleiner Hinweis: LE empfiehlt die Verwendung des „Staging“-Modus, um die in den Produktionsmodus geltenden Zertifikatsbeschränkungen zu vermeiden. Ein Limit von 5 fehlgeschlagenen Versuchen wird nach 1 Stunde zurückgesetzt. :wink:

Danke, Jim, das werde ich tun, wenn die Fehler wieder auftreten. Ich habe gerade einen weiteren Neuaufbau durchgeführt, und siehe da: Es gab keinen SSL-Fehler!