Hallo @pfaffman, die Bearbeitung des ursprünglichen Beitrags enthält ein fehlerhaftes + in der to:-Zeile, was den Regex bricht. Es sollte entfernt werden.
Separat muss der folgende Absatz bearbeitet werden, da er keinen Sinn mehr ergibt:
Es gibt zwei Muster, die ersetzt werden müssen, eines endet mit --keylength und ein anderes endet mit --fullchainpath (in der tatsächlichen Datei steht Ihre ursprüngliche Domain vor jedem dieser Schalter). Geben Sie Ihre (Sub-)Domain (und alle zusätzlichen Subdomains, denen -d vorangestellt ist) ein und fügen Sie dann Folgendes zu Ihrem app.yml-Hooks-Abschnitt hinzu (gegen Ende der Datei):
Ich schlage vor:
Verwenden Sie domain1 und domain2 in diesem Beitrag, um den benötigten Code zu generieren. domain1 ist Ihre ursprüngliche Domain und domain2 ist die zusätzliche Domain, die Sie hinzufügen möchten. Fügen Sie den resultierenden after_ssl:-Block zum hooks:-Abschnitt Ihrer app.yml hinzu und führen Sie einen launcher rebuild app aus.
Ist dies eine Änderung daran, wie Discourse LetsEncrypt handhabt, oder eine Änderung an LetsEncrypt selbst?
Ich habe einen Server, der derzeit von diesem Problem betroffen ist. Vorerst ist meine Problemumgehung, diesen Teil der app.yml auszukommentieren, aber ich denke, wir brauchen in Zukunft eine Möglichkeit, diese zusätzlichen Zertifikate in das Setup aufzunehmen.
Discourse hat das in eine andere Datei verschoben. Es wird gerade daran gearbeitet. Ich werde versuchen, in den nächsten Tagen nachzusehen, was erforderlich ist, um die Unterstützung mehrerer Subdomains zu ermöglichen.
Errno::ENOENT: No such file or directory @ rb_sysopen - /usr/local/bin/letsencrypt
Ort des Fehlschlags: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/replace_command.rb:11:in `read’
Ersetzen fehlgeschlagen mit den Parametern {“filename”=>“/usr/local/bin/letsencrypt”, “from”=>“/-d spokes.nz/”, “to”=>“-d spokes.nz -d www.spokes.nz”}
Bootstrap fehlgeschlagen mit Exit-Code 1
** BOOTSTRAP FEHLGESCHLAGEN ** Bitte scrollen Sie nach oben und suchen Sie nach früheren Fehlermeldungen, es kann mehr als eine geben.
Versuchen Sie vielleicht, den Ersetzungsvorgang in die Strophe unten einzufügen, wo sich früher die SSH-Sachen befanden, wenn das Sinn ergibt (ich bin auf meinem Handy, ich werde versuchen, es morgen anzusehen)
Ich vermute, dass der Fehler, den Sie erhalten, möglicherweise mit einem fehlenden Leerzeichen vor dem Schrägstrich und dem abschließenden Anführungszeichen in den jeweiligen Zeilen des vorgeschlagenen Strophe in Ihrer app.yml-Datei zusammenhängt?
Ich schließe dies aus der Fehlermeldung, dass Ihre jeweiligen Zeilen lauten (wortwörtlich)
from: /-d spokes.nz/
to: “-d spokes.nz -d www.spokes.nz”
Ich sage das, weil in meinem Fall die Zeilen lauten
from: /-d nzarchitecture.net.nz /
to: „-d nzarchitecture.net.nz -d www.nzarchitecture.net.nz “
Und mit Leerzeichen direkt vor dem Ende jeder Zeile, wie gezeigt, kann ich Discourse jetzt ohne diesen Fehler neu erstellen. (Wenn Sie genau hinschauen, sehen Sie, dass @pfaffman’s aktualisierte Strophe, die zu Beginn dieses Threads gepostet wurde, diese zusätzlichen Leerzeichen aufwies).
Ich habe auch keine Dateien im Verzeichnis usr/local/bin/ (wie in Ihrer Fehlermeldung erwähnt), was mich vermuten ließ, dass das Fehlen dieser letsencrypt-Datei nicht der Auslöser für den Fehler ist.
Dennoch, obwohl Discourse für mich auf seiner URL nzarchitecture.net.nz gut funktioniert, erhalte ich leider immer noch einen Zertifikatsfehler, wenn ich www.nzarchitecture.net.nz in einen Browser eingebe - ob dies auf das Fehlen dieser Datei zurückzuführen ist, weiß ich nicht.
Ich stelle nur fest, dass ich dies derzeit in Umgebungsvariablen einbinde, um es direkt in discourse_docker zu verarbeiten, so etwas wie eine durch Kommas getrennte Liste von Hostnamen-Aliassen. Es scheint ein häufig genug Anwendungsfall zu sein, um ihn direkt zu behandeln.
Es wird die Konfiguration für diesen Fall erleichtern, sodass niemand Änderungen an seinen app.ymls vornehmen muss.
Mein aktueller Plan ist mit DISCOURSE_HOSTNAMEwww.domain.com
Erlaube Umgebungsvariablen wie: DISCOURSE_HOSTNAME_ALIASES: domain.com,other.domain.com würde das Zertifikat abrufen, das für alle Hostnamen gültig ist.
(Während ich dabei bin, scheinen auch die automatischen Erneuerungen von Let’s Encrypt nicht richtig zu funktionieren, also behebe ich auch diese.)
Das habe ich verpasst! Habe es wie vorgeschlagen gemacht, aber immer noch ein Bootstrap-Fehler:
FEHLGESCHLAGEN
Errno::ENOENT: No such file or directory @ rb_sysopen - /usr/local/bin/letsencrypt
Ort des Fehlschlags: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/replace_command.rb:11:in `read’
Ersetzen fehlgeschlagen mit den Parametern {“filename”=>“/usr/local/bin/letsencrypt”, “from”=>“/-d spokes.nz /”, “to”=>"-d spokes.nz -d www.spokes.nz "}
Bootstrap fehlgeschlagen mit Exit-Code 1
** BOOTSTRAP FEHLGESCHLAGEN ** Bitte scrollen Sie nach oben und suchen Sie nach früheren Fehlermeldungen, es kann mehr als eine geben.
Wahrscheinlich nicht das Hauptproblem hier, aber bei meinem Herumprobieren habe ich auch die Docker-Version, die auf Digital Ocean läuft, von 20.0.4 (glaube ich) auf 28.3.3 aktualisiert - vielleicht hat das geholfen, zumindest bei diesem Fehler. Wenn nichts anderes, hat es die Docker-‘veralteten’-Warnungen beseitigt, die ich zu Beginn des Wiederaufbauprozesses erhalten habe.
Hallo zusammen, nur zur Info: Mehrere Domains wurden jetzt zusammengeführt – in der neuesten Version von discourse_docker können Sie jetzt die SSL- und Letsencrypt-Vorlagen einbeziehen und Umgebungsvariablen der Form DISCOURSE_HOSTNAME_ALIASES: domain.com,other.domain.com einrichten, um alternative Hostnamen einzurichten.
Ihre Website wird zusätzlich die konfigurierten Hostnamen mit der Zertifikatsanforderung abrufen, ohne dass zusätzliche Konfigurationsänderungen erforderlich sind.
[quote=“featheredtoast, post:172, topic:56685”]Sie können jetzt die SSL- und Let’s Encrypt-Vorlagen einbeziehen und Umgebungsvariablen der Form DISCOURSE_HOSTNAME_ALIASES: domain.com,other.domain.com einrichten, um alternative Hostnamen einzurichten.
[/quote]
Verzeihen Sie meine Unwissenheit, aber ist dies über eine Website-Einstellung editierbar oder muss etwas in der app.yml bearbeitet werden?
Wenn ersteres, hatte ich keine Glück, sie nach dem Update auf die neueste Version zu finden, und wenn letzteres, was genau sollte in der app.yml angepasst werden?
Sie würden nur zusätzliche Domains angeben, auf die Sie möchten, dass Personen verlinken und zu Ihrem tatsächlichen Hostnamen der Website weitergeleitet werden.
Es wäre noch besser, wenn es eine clevere Möglichkeit gäbe, wie Discourse die vom Administrator bereitgestellten Aliase beim nächsten Update selbst in die app.yml schreibt oder die Informationen dort hinterlässt, wo eine app.yml-Anweisung sie lesen kann.