Lese-Ansicht

Neue Hetzner DNS API und acme.sh

Wenn Sie Ihre Domains bei Hetzner verwalten, wurden Sie in den vergangenen Monaten dazu aufgefordert, die Domains in ein neues DNS-Verwaltungstool zu migrieren. Das gelingt zumeist problemlos (zumindest in meinen Fällen).

Allerdings hat Hetzner nun auch die alte API zur DNS-Administration ausgeschaltet. Falls Sie bei der Ausstellung von Let’s-Encrypt-Zertifikate die alte DNS-API verwendet haben, scheitert die Erneuerung der Zertifikate mit unspezifischen Fehlern (invalid domain).

Ich verwende zur Zertifikatsausstellung normalerweise acme.sh und bin auf das Problem erst aufmerksam geworden, als das erste Zertifikat auf einem meiner Server abgelaufen ist. (Ein ordentliches Monitoring hätte dieses Hoppala natürlich verhindert. Es war nicht die wichtigste Domain …)

Ich habe keinen Weg gefunden, den Zertifiktaserneuerungsmechanismus von acme.sh irgendwie zu aktualisieren, also gewissermaßen die vorhandene Konfiguration auf die neue API zu migrieren. Die Lösung bestand darin, in der Hetzner-Console einen neuen API-Key einzurichten und dann mit acme.sh die Zertifikate neu auszustellen. Falls Sie viele Server administrieren, ist das, gelinde formuliert, unbequem …

Hinweis: Sie sind von diesem Problem NICHT betroffen, wenn die Domain-Validierung mit anderen Verfahren erfolgt, z.B. durch das Ablegen einer Datei in /var/www/html. Dieser Blog-Artikel bezieht sich explizit auf den Zertifikatserneuerungsprozess, wenn Sie bisher die alte Hetzner-DNS-API in Kombination mit acme.sh verwendet haben!

API-Key

Zuerst brauchen Sie einen neuen API-Key. Den erstellen Sie in der Hetzner-Konsole unter Security / API-Tokens. Der Token muss read/write sein, weil acme.sh für die Validierung Ihrer Domain vorübergehend eine zusätzlichen DNS-Eintrag hinzufügt. Den vollständigen Token-Code können Sie nur einmal ansehen/kopieren. Hetzner bietet aktuell keine Möglichkeit, die Gültigkeit des Keys irgendwie einzuschränken.

Ein RW-Key vermittelt damit weit mehr Rechte, als zur DNS-Administration erforderlich wären. Das ist mir ein wenig unheimlich, aber aktuell nicht zu ändern.

Neuen Hetzner-API-Key einrichten

acme.sh aktualisieren, Zertifikate neu erstellen und einrichten

acme.sh muss das Verfahren Hetzner Cloud DNS API unterstützen. Dieses ist verhältnismäßig neu. Eventuell müssen Sie Ihre vorhandene acme.sh-Installation aktualisieren:

acme.sh --upgrade

Mit acme.sh --list gewinnen Sie einen Überblick, welche Zertifikate es auf dem Server gibt (Output verkürzt):

acme.sh --list

  Main_Domain         SAN_Domains              CA               Created     Renew
  eine-firma.de       www.eine-firma.de        LetsEncrypt.org  2026-05-12  2026-07-11
  mail.eine-firma.de  smtp.eine-firma.de,...   LetsEncrypt.org  2026-05-12  2026-07-11

Jetzt speichern Sie das Token in einer Umgebungsvariablen und wiederholen die Kommandos zur Zertifikatsausstellung sowie zum Kopieren der Zertifikate an den Zielort, wobei Sie die bisherige acme.sh-Option --dns dns-hetzner durch --dns dns-hetznercloud ersetzen.

Die folgenden Beispielkommandos zeigen die Neuausstellung der Zertifikate und deren Deployment. Sofern Sie exakt die gleichen Namen/Pfade wie bei der ursprünglichen Zertifikatsausstellung verwenden, sollte danach alles wieder funktionieren (d.h. der Webserver verwendet die neuen Zertifikate).

export HETZNER_Token='oqCF...'

# wichtig ist die geänderte Option --dns dns_hetznercloud
acme.sh --issue --dns dns_hetznercloud --server letsencrypt \
  -d eine-firma.de -d www.eine-firma.de

# Zertifikate in /etc/letsencrypt speichern (setzt voraus, dass
# Apache so konfiguriert ist, dass das Programm die Zertifikate
# von dort liest)
acme.sh --install-cert -d eine-firma.de \
        --cert-file      /etc/letsencrypt/eine-firma.de.cert \
        --key-file       /etc/letsencrypt/eine-firma.de.key \
        --fullchain-file /etc/letsencrypt/eine-firma.de.fullchain \
        --reloadcmd 'systemctl restart apache2'

Sie müssen die Kommandos natürlich an Ihre Gegebenheiten anpassen.

Quellen/Links

  •  

10 Jahre Let’s Encrypt

Am 14. September 2015 hat Let’s Encrypt sein erstes öffentlich vertrauenswürdiges Zertifikat ausgestellt. Rückblickend war dies nur das erste von Milliarden von Zertifikaten.

  •  

Let's Encrypt stellt E-Mail-Benachrichtigungen ein

Kurz notiert: Let's Encrypt hat Anfang des Monats am 4. Juni 2025 den Dienst für die E-Mail-Benachrichtigungen abgeschaltet. Zertifikatsinhaber werden fortan nicht mehr per E-Mail auf ein Auslaufen der Zertifikate hingewiesen. Diese Änderung wurde bereits im Januar angekündigt.

Begründet wird die Entscheidung durch die Kosten für den E-Mail-Versand, die Speicherung der E-Mail-Adressen sowie die Komplexität der Infrastruktur. In der Tat ist der Versand der Benachrichtigungen in einer Größenordnung wie bei Let's Encrypt sehr kostenintensiv, zumal dies über externe Dienstleister abgewickelt werden muss.

Die Speicherung der E-Mail-Adressen ist ein interessanter Punkt, weil insbesondere bei certbot die Adressen standardmäßig immer abgefragt wurden, während man die Angabe bei acme.sh schon länger vermeiden konnte. Dies soll, so mein Verständnis, nun der Standard werden, da Let's Encrypt nicht mehr die E-Mail-Adressen der Zertifikatsinhaber speichern möchte. Für andere Zwecke wurden die E-Mail-Adressen offenbar auch nicht gespeichert, da z. B. das Zurückziehen eines Zertifikates (Revocation) über andere Wege wie den Private Key oder DNS-Verifikation läuft, wie in der Dokumentation beschrieben wird.

Bleibt noch ein letzter Punkt, der im Blogartikel zur Abschaltung angeführt wird: Ein integraler Bestandteil von Let's Encrypt ist Automatisierung. Schon von Anfang an wurden automatisierte Verfahren wie ACME statt einer manuellen Verifikation eingesetzt, sodass auch die Erneuerung (Renew) automatisiert vorgenommen werden konnte und eine Benachrichtigung eigentlich überflüssig ist. Wer das noch nicht verstanden hat, soll es jetzt wohl auf die harte Tour lernen. Der Dienst unterstützt die Benachrichtigungen seit seinem Start im Jahr 2015, als diese Form der Automatisierung noch völlig neu war und sich alle daran gewöhnen mussten.

Let's Encrypt möchte die Ressourcen verwenden, um sich neuen Vorhaben zu widmen. Dazu gehören sicherlich zum Beispiel die 6-Tages-Zertifikate oder CRLs, wie wir auch schon in der Risikozone-Episode 64 Anfang des Jahres besprochen haben.

  •  
❌