Einrichtung von Let's Encrypt mit mehreren Domains / Weiterleitungen

Oh, wow, endlich hat es funktioniert:

true | openssl s_client -connect www.starzen.space:443 2>/dev/null \
| openssl x509 -noout -text \
| perl -l -0777 -ne '@names=/\\bDNS:([^\\s,]+)/g; print join("\n", sort @names);'
starzen.space
www.starzen.space

Ich habe die if-Anweisungen im letsencrypt-Skript auskommentiert, um eine Neu-Ausstellung zu erzwingen. Das ist natürlich keine „Factory“-Lösung.

Es deutet jedoch darauf hin, dass es ein Problem mit dem „Status“ gab und nicht mit den übergebenen Optionen.

Es sieht so aus, als ob das aktuelle Skript je nach vorherigem Status stolpern kann, aber wenn man eine Neu-Ausstellung erzwingt, kann man es beheben.

Aber jetzt habe ich eine funktionierende Apex-Domain! :tada:

4 „Gefällt mir“

Das ist Teil des Standard-Installationspakets. Siehe User Guide — Certbot 5.1.0 documentation und scrollen Sie nach unten zu Zertifikate verwalten und direkt darunter Bestehende Zertifikate neu erstellen und aktualisieren.

Diese Befehle würden von dort ausgeführt, wo Sie Certbot ursprünglich ausgeführt haben.

1 „Gefällt mir“

Ich habe eine Standardinstallation und certbot wird nicht verwendet. Nicht auf einer „normalen“ Server-Ebene, auch nicht, wenn ich zuerst ./launcher enter app sage.

Ich vermute, es fehlt wegen acme.sh.

3 „Gefällt mir“

Ich glaube, ich stoße auf ein ähnliches Problem. Ich dachte, es läge daran, dass ich eine Sub-Subdomain verwendet habe (Let's Encrypt with sub-subdomain?), aber ich habe es mit einer normalen Subdomain versucht und das Zertifikat wird für die neue Website immer noch nicht generiert.

Ich versuche herauszufinden, wie du es zum Laufen gebracht hast, aber ich kann dir nicht folgen :grimacing:

Was hast du getan, damit es bei dir funktioniert?

Wenn es das war, welche der if-Anweisungen hast du auskommentiert?

Hast du auch eine Idee, was dieses neue Problem verursachen könnte?

1 „Gefällt mir“

Mein Problem hing mit einem abgelaufenen Domainnamen in meiner Multisite-Konfiguration zusammen:

2 „Gefällt mir“

Hallo @Brahn,

Vielen Dank für das kürzliche Update Ihrer Anweisungen.

Ich hatte einen Zertifikatsfehler gesehen, nachdem ich meine Root-Domain auf eine Subdomain gezeigt hatte. Ich habe meine app.yml-Datei mit der neueren Version aktualisiert, die Sie testen wollten, und das Problem ist behoben. :slightly_smiling_face:

4 „Gefällt mir“

Ich musste das auch gerade implementieren, nachdem ich die Domain gewechselt hatte und die Weiterleitung fehlschlug.

Ich habe die Wiki leicht angepasst, die alten Anweisungen entfernt und die Leerzeichen in den neuen korrigiert.

Es scheint jedoch bisher nicht funktioniert zu haben. Ich vermute, dass ich eine neue Zertifikatsausstellung erzwingen muss. Kann mir jemand Anleitungen geben, wie ich das einfach tun kann?

Ich bin ziemlich sicher, dass ich gerade einen Rebuild durchgeführt habe. Es könnte sein, dass sich etwas wieder geändert hat. Hast du noch das alte Zertifikat? Wie lautet der Hostname? Du kannst mir eine PM schicken, wenn du möchtest.

Danke Jay - forum.hinz.org.nz ist die alte Domain (und ehealthforum.nz die neue).\n\nIch habe einen Rebuild durchgeführt (nur web_only als 2-Container), aber das schien das Problem nicht zu beheben.

Hast du auch den Hostnamen geändert? Hast du die Domain umbenannt oder dein Discourse umbenannt?

Ungefragter Rat: Best Practice scheint zu sein, mit www statt der Apex-Domain zu arbeiten. Die Browser, die ich benutze, machen es fast unmöglich zu erkennen, dass www vorhanden ist.

Meine einzige Vermutung ist, dass das Leerzeichen am Ende innerhalb der Anführungszeichen wichtig ist und du es nicht hast?

Ich würde in den Container gehen und herumstöbern und versuchen, acme so auszuführen, wie es das tut, und sehen, was passiert; ich kann mich nie daran erinnern, wie das geht oder wo ich nach dem acme-Befehl suchen muss; ich muss es jedes Mal herausfinden, daher kann ich es dir nicht sagen. Du könntest es aus docker logs web_only sehen.

Ich schwöre, das hat funktioniert, wann immer ich das letzte Mal daran gearbeitet habe. Ich habe gerade die Seite überprüft, auf die ich es angewendet habe, und es scheint, dass ihr zusätzliches gültiges Zertifikat funktioniert. Aber es ist denkbar, dass es ein anderes Basis-Image hat als jetzt und es beim nächsten Neubau kaputt geht.

Ich werde versuchen, das noch einmal zu überprüfen, wenn ich die Gelegenheit dazu habe. Vielleicht nächste Woche.

1 „Gefällt mir“

Ja - habe all das ohne Probleme gemacht.

In der Tat - aber es lohnt sich nur, wenn Sie ein CDN oder Subdomains verwenden möchten (ich tue es nicht):
https://hostadvice.com/blog/domains/what-is-apex-domain/

Habe versucht, das hinzuzufügen, aber es hat keinen Unterschied gemacht.

Das ist ziemlich aufschlussreich (klicken zum Aufklappen)

> root@forumhinz:/var/discourse# docker logs web_only
> run-parts: executing /etc/runit/1.d/00-ensure-links
> run-parts: executing /etc/runit/1.d/00-fix-var-logs
> run-parts: executing /etc/runit/1.d/01-cleanup-web-pids
> run-parts: executing /etc/runit/1.d/anacron
> run-parts: executing /etc/runit/1.d/cleanup-pids
> Cleaning stale PID files
> run-parts: executing /etc/runit/1.d/copy-env
> run-parts: executing /etc/runit/1.d/letsencrypt
> [Sa 9 Sep 08:19:27 UTC 2023] Domains not changed.
> [Sa 9 Sep 08:19:27 UTC 2023] Skip, Next renewal time is: 2023-10-26T08:24:32Z
> [Sa 9 Sep 08:19:27 UTC 2023] Add ‘–force’ to force to renew.
> [Sa 9 Sep 08:19:29 UTC 2023] Installing key to: /shared/ssl/ehealthforum.nz.key
> [Sa 9 Sep 08:19:29 UTC 2023] Installing full chain to: /shared/ssl/ehealthforum.nz.cer
> [Sa 9 Sep 08:19:29 UTC 2023] Run reload cmd: sv reload nginx
> warning: nginx: unable to open supervise/ok: file does not exist
> [Sa 9 Sep 08:19:29 UTC 2023] Reload error for :
> [Sa 9 Sep 08:19:29 UTC 2023] Domains not changed.
> [Sa 9 Sep 08:19:30 UTC 2023] Skip, Next renewal time is: 2023-10-26T08:24:45Z
> [Sa 9 Sep 08:19:30 UTC 2023] Add ‘–force’ to force to renew.
> [Sa 9 Sep 08:19:31 UTC 2023] Installing key to: /shared/ssl/ehealthforum.nz_ecc.key
> [Sa 9 Sep 08:19:31 UTC 2023] Installing full chain to: /shared/ssl/ehealthforum.nz_ecc.cer
> [Sa 9 Sep 08:19:31 UTC 2023] Run reload cmd: sv reload nginx
> warning: nginx: unable to open supervise/ok: file does not exist
> [Sa 9 Sep 08:19:31 UTC 2023] Reload error for :
> Started runsvdir, PID is 570
> supervisor pid: 578 unicorn pid: 590

Das deutet darauf hin, dass ich bis zum 2023-10-26T08:24:00Z warten muss, bis sich das Problem von selbst löst, wenn ich keinen Weg finde, die Erneuerung zu erzwingen!

Ich werde ein paar Dinge versuchen - wünscht mir Glück.

später…

Erfolg!

Nun, nachdem ich mehrmals versucht und nicht geschafft habe, die Zertifikatserneuerung anzustoßen, bin ich schließlich auf einen neuen Server umgezogen (das war bereits geplant).

Siehe da, das hat das Zertifikat perfekt mit den Einstellungen in der OP erneuert. Wer hätte das gedacht.

Ich bin mir nicht sicher, wie ich das in Zukunft besser machen kann. Vielleicht die DNS-Einstellungen Ihrer neuen Domain ein oder zwei Monate im Voraus festlegen und diese Zeilen dann in Ihre app.yml einfügen.

2 „Gefällt mir“

Ich habe dies zu meiner app.yml-Datei hinzugefügt. Muss ich neu erstellen oder funktioniert es einfach?
Außerdem, in der
“from: /-d www.first-domain.com/” gebe ich die Domain ein, zu der ich weiterleiten möchte, oder meine Subdomain?

1 „Gefällt mir“

Ja, alle Änderungen in app.yml erfordern normalerweise einen Neuerstellung.

3 „Gefällt mir“

Ich habe neu aufgebaut und jetzt ist meine Website nicht mehr erreichbar. Soll ich noch einmal neu aufbauen?
Es wird nach dem Neuaufbau Folgendes angezeigt:

"Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 3575 exit 134>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {\"cd\"=>\"$home\", \"hook\"=>\"assets_precompile\", \"cmd\"=>[\"su discourse -c 'bundle exec rake themes:update assets:precompile'\"]}\nbootstrap failed with exit code 134
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one."
1 „Gefällt mir“

Ist der Wiederaufbauprozess reibungslos und ohne Fehler verlaufen?

2 „Gefällt mir“

Bitte tun Sie dies und teilen Sie die Fehlermeldungen mit.

2 „Gefällt mir“
110:M 10 Dez 2023 13:32:18.543 # Server initialisiert
110:M 10 Dez 2023 13:32:18.543 # WARNUNG Speicher-Overcommit muss aktiviert sein! Ohne ihn kann ein Hintergrundspeichern oder Replizieren unter geringen Speicherbedingungen fehlschlagen. Wenn er deaktiviert ist, kann er auch ohne geringe Speicherbedingungen zu Fehlern führen. Siehe https://github.com/jemalloc/jemalloc/issues/1328. Um dieses Problem zu beheben, fügen Sie 'vm.overcommit_memory = 1' zu /etc/sysctl.conf hinzu und starten Sie dann neu oder führen Sie den Befehl 'sysctl vm.overcommit_memory=1' aus, damit er wirksam wird.
110:M 10 Dez 2023 13:32:18.544 * Lade RDB, erstellt von Version 7.0.7

Ich habe diese Warnungen erhalten, bin mir aber nicht sicher, ob das wichtig ist.

warning "@glint/environment-ember-loose@1.1.0" hat nicht erfüllte Peer-Abhängigkeit "@glimmer/component@^1.1.2".
warning "@glint/environment-ember-template-imports@1.1.0" hat nicht erfüllte Peer-Abhängigkeit "ember-template-imports@^3.0.0".
warning Auflösungsfeld "unset-value@2.0.1" ist inkompatibel mit der angeforderten Version "unset-value@^1.0.0"
warning Muster ["wrap-ansi@^7.0.0"] versucht, in dasselbe Ziel "/home/discourse/.cache/yarn/v6/npm-wrap-ansi-cjs-7.0.0-67e145cff510a6a6984bdf1152911d69d2eb9e43-integrity/node_modules/wrap-ansi-cjs" wie Muster ["wrap-ansi-cjs@npm:wrap-ansi@^7.0.0"] zu entpacken. Dies könnte zu nicht deterministischem Verhalten führen, wird übersprungen.
warning "> discourse-markdown-it@1.0.0" hat nicht erfüllte Peer-Abhängigkeit "xss@*".
warning "workspace-aggregator-68bace53-129d-4a2d-85c3-4685b91c92ee > discourse > @ember/legacy-built-in-components@0.5.0" hat eine falsche Peer-Abhängigkeit "ember-source@>= 4.8".
warning "workspace-aggregator-68bace53-129d-4a2d-85c3-4685b91c92ee > discourse > @uppy/aws-s3@3.0.6" hat eine falsche Peer-Abhängigkeit "@uppy/core@^3.1.2".
warning "workspace-aggregator-68bace53-129d-4a2d-85c3-4685b91c92ee > discourse > @uppy/aws-s3-multipart@3.1.3" hat eine falsche Peer-Abhängigkeit "@uppy/core@^3.1.2".
warning "workspace-aggregator-68bace53-129d-4a2d-85c3-4685b91c92ee > discourse > @uppy/xhr-upload@3.1.1" hat eine falsche Peer-Abhängigkeit "@uppy/core@^3.1.2".
warning "workspace-aggregator-68bace53-129d-4a2d-85c3-4685b91c92ee > discourse-plugins > ember-this-fallback@0.4.0" hat nicht erfüllte Peer-Abhängigkeit "ember-source@^3.28.11 || ^4.0.0".
warning "workspace-aggregator-68bace53-129d-4a2d-85c3-4685b91c92ee > discourse > @uppy/aws-s3 > @uppy/xhr-upload@3.3.0" hat eine falsche Peer-Abhängigkeit "@uppy/core@^3.2.1".
<--- Letzte GCs ---

[3710:0x6291170]   681247 ms: Scavenge 942.0 (1034.0) -> 940.8 (1034.0) MB, 62.9 / 0.0 ms  (durchschnittliches mu = 0.704, aktuelles mu = 0.878) Allokationsfehler;
[3710:0x6291170]   681616 ms: Scavenge 942.4 (1034.0) -> 941.4 (1034.0) MB, 18.3 / 0.0 ms  (durchschnittliches mu = 0.704, aktuelles mu = 0.878) Allokationsfehler;
[3710:0x6291170]   681911 ms: Scavenge 943.0 (1034.0) -> 942.0 (1038.0) MB, 46.8 / 0.0 ms  (durchschnittliches mu = 0.704, aktuelles mu = 0.878) Allokationsfehler;
FATAL ERROR: Heap-Limit erreicht Allokationsfehler - JavaScript heap out of memory
 1: 0xb83f50 node::Abort() [ember]
 2: 0xa94834  [ember]
 3: 0xd647c0 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [ember]
 4: 0xd64b67 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [ember]
 5: 0xf42265  [ember]
 6: 0xf5474d v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [ember]
 7: 0xf2ee4e v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [ember]
 8: 0xf30217 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [ember]
 9: 0xf113ea v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [ember]
10: 0x12d674f v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [ember]
11: 0x17035b9  [ember]
Aborted (core dumped)
error Befehl mit Exit-Code 134 fehlgeschlagen.

und meine Seite sagt

Diese Seite kann nicht erreicht werden

forum.mysite.ca hat die Verbindung verweigert.

Versuchen Sie:

  • Überprüfung der Verbindung
  • [Überprüfung des Proxys und der Firewall]

ERR_CONNECTION_REFUSED

das ist, wie mein app.yml aussieht

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-zoom.git
  after_ssl:
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: "-d www.mysite.ca/"
        to: "-d www.mysite.ca -d mysite.ca "
## Alle benutzerdefinierten Befehle, die nach dem Erstellen ausgeführt werden sollen
1 „Gefällt mir“

Wie viel Speicher hat Ihr Server und ist Swap aktiviert (free -h zur Ansicht)?

               total        used        free      shared  buff/cache   available
Mem:             957         190         371           3         395         613
Swap:           2047          79        1968

Ihr Server verfügt über 1 GB RAM und 2 GB Swap-Speicher. Seltsamerweise schlug der Wiederaufbauprozess mit dieser Swap-Kapazität fehl.
Sie können versuchen, den Wiederaufbau erneut zu starten. Wenn dies fehlschlägt, müssen Sie möglicherweise den Server-Speicher aufrüsten, falls möglich (nur für den Wiederaufbauprozess, Sie können ihn danach wieder herabstufen).

1 „Gefällt mir“