Ich füge hier noch einen Randfall bei Migrationen hinzu, auf den ich gestoßen bin, falls es jemandem weiterhilft.
Bei der Migration einer eigenständigen Discourse-Instanz auf einen neuen VPS bin ich auf einen Randfall mit Let’s Encrypt/SSL gestoßen, daher habe ich die genaue Diagnose und die Schritte zur Wiederherstellung dokumentiert, falls sie für andere hilfreich sind, die dieser Anleitung folgen.
In meinem Fall würde nginx innerhalb von app nicht starten, weil beide .cer-Dateien in /var/discourse/shared/standalone/ssl/ zu Dateien mit 0 Byte geworden waren:
PEM_read_bio_X509_AUX() failed
Ein Neuaufbau versuchte erneut, ein Zertifikat auszustellen, und nach wiederholten Versuchen erreichte ich das Zertifikats-Ratenlimit von Let’s Encrypt. Das alleinige Kopieren der noch gültigen Zertifikatsdateien vom alten Server reichte nicht aus, da das Starten von app diese wieder durch 0-Byte-Dateien ersetzte.
Was das Problem schließlich löste, war das Stoppen von app und das Kopieren sowohl des funktionierenden Verzeichnisses /var/discourse/shared/standalone/ssl/ als auch des entsprechenden Zustands von /var/discourse/shared/standalone/letsencrypt/ vom alten Server, bevor ich den Container erneut startete.
Die vollständige Abfolge habe ich hier dokumentiert:
Dies sind Diagnose- und Wiederherstellungsnotizen aus dieser spezifischen Migration und ersetzen nicht die offizielle Dokumentation zur Migration oder HTTPS.
Es gibt auch ein älteres Meta-Thema, das den verwandten Fehlerfall mit leeren .cer-Dateien behandelt: