Erneuerung letsencrypt zertifikat mit acme gibt error 6 aus

[Vorbemerkung: Hoffe bin in der richtigen Kategorie]

Guten Morgen,

Ich habe den IPv64 Service entdeckt und aktuell sehr zufrieden, damit mein ddns Problem zu lösen. Vor allem auch, weil ich damit ohne offene Ports (443 und 80) meine lets Encrypt Zertifikate erneuern können sollte.

Mit acme konnte ich zur ddns passende Lets Encrypt Zertifikate erstellen. Nun wollte ich prüfen, ob ich automatisiert in der Lage wäre, die Zertifikate zu erneuern.

Wenn ich folgende Befehl eingebe (Ports 443 und 80 offen):
/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh --force
(force damit das Zertifikat trotzdem dass es nicht abgelaufen ist, erneuert wird.)

bekomme ich folgende Ausgabe:
Checking xxxxxx.de for _acme-challenge.xxxxx
[Mon Feb 24 06:39:26 AM CET 2025] Please refer to libcurl - Error Codes for error code: 6

Wenn ich --dnssleep 300 anhänge, dann läuft die Erneuerung des Zertifikates ohne Fehler durch - wenn die Ports 443 und 80 offen sind.

Wenn die Ports 443 und 80 nicht offen sind, gibt es folgende Fehlermeldung - wenn ich --dnssleep 300 mitgebe:

[Mon Feb 24 07:03:25 AM CET 2025] Sleeping for 300 seconds to wait for the the TXT records to take effect
[Mon Feb 24 07:08:27 AM CET 2025] Verifying: xxxxxxxxx.de
[Mon Feb 24 07:08:27 AM CET 2025] Processing. The CA is processing your order, please wait. (1/30)
[Mon Feb 24 07:08:31 AM CET 2025] The retryafter=86400 value is too large (> 600), will not retry anymore.
[Mon Feb 24 07:08:34 AM CET 2025] Please add ‚–debug‘ or ‚–log‘ to see more information.
[Mon Feb 24 07:08:34 AM CET 2025] See: How to debug acme.sh · acmesh-official/acme.sh Wiki · GitHub
[Mon Feb 24 07:08:35 AM CET 2025] Error renewing mtmzg.ipv64.de_ecc.

Wenn die Ports 443 und 80 geschlossen sind und ich --dnssleep nicht mitgebe, läuft die Erneuerung ohne Fehler durch.

Zusammengefasst:
es geht wenn:

  • die Ports 80 und 443 offen sind und ich --dnssleep 300 mitgebe
  • die Ports 80 und 443 geschlossen sind und ich --dnssleep 300 nicht mitgebe

es geht nicht wenn:

  • die Ports geschlossen sind und ich --dnssleep 300 mitgebe
  • die Ports 80 und 443 offen sind und ich --dnssleep 300 nicht mitgebe

Ich bin mir nun nicht sicher, ob es ein Fehler bei mir ist oder nicht. Oder ob es kein Fehler ist. Ich bin noch neu in diesem Thema und verstehe es noch nicht so gut. Irritiert bin ich einfach, dass die Erneuerung mit offenen Ports nicht geht (wenn ich nicht --dnssleep 300 mitgebe).

Mein System: Synology SA6400 mit aktuellestem DSM7.2.2

Danke für Eure Hilfe,
Online78

Hi @online78,
derzeit tausche ich die Zertifikate immer noch manuell aus :slight_smile:

Mich würde interessieren, wie du das komplett umgesetzt hast. Ich nehme an direkt auf der Synology? Verwendest du das DNS direkt von Unifi und den Reserve-Proxy von Synology? Wie genau ist hier deine Architektur?

Noch zu deinem Problem: Je nachdem wie du das Skript startest wäre es doch eine Option, das ganze mit einem Workflow zu lösen oder? Konkrete Idee von mir - du lässt auf einer Synology (oder anderen Plattform) den Dienst n8n laufen. Hiermit kannst du dann versch. Skripts zeitgesteuert starten, Warteschritte einfügen, dich automatisch kontaktieren lassen usw.

Würde das vielleicht dein Problem lösen bzw. hast due s vielleicht schon gelöst?

VG, Marco

@marco21 du antwortest nach 2 Jahren?

Hi @CalthaPalustris,
ja - ich habe den Thema gefunden und dachte, ich versuch mal mein Glück :wink: