Worum geht es?
Mit einem Zertifikat von Let's Encrypt erreichen Sie Ihr NAS, Ihren Server oder Ihre Firewall per https:// –
ohne Warnung im Browser. Let's Encrypt ist kostenlos, Zertifikate gelten 90 Tage und werden automatisch verlängert.
Normalerweise prüft Let's Encrypt über Port 80, ob Ihnen der Name gehört. Mit AnyDNS geht das über das DNS:
- Ihr Gerät beantragt das Zertifikat bei Let's Encrypt und bekommt einen Prüfwert.
- Es meldet den Prüfwert über unsere Schnittstelle, wir veröffentlichen ihn als
_acme-challenge.meinname.anydns.info. - Let's Encrypt findet den Wert im DNS und stellt das Zertifikat aus.
Das hat drei Vorteile: kein offener Port (auch für Geräte, die nur im Firmennetz oder per VPN erreichbar sind),
Wildcard-Zertifikate wie *.meinname.anydns.info und der private Schlüssel des Zertifikats verlässt Ihr Gerät nie.
Zertifikate sind ab AnyDNS Plus enthalten. Pakete vergleichen
Schritt 1: Zugang anlegen
Melden Sie sich im Kundencenter unter „Zertifikate“ an und klicken Sie beim gewünschten Hostnamen auf Zugang anlegen. Sie bekommen vier Werte:
- Server:
https://anydns.info/acme-dns(manche Programme wollen die Update-Adresse:https://anydns.info/acme-dns/update) - Benutzer (username)
- Schlüssel (password)
- Subdomain
Der Schlüssel wird nur ein einziges Mal angezeigt – kopieren Sie ihn sofort in Ihr Gerät oder einen Passwortmanager. Geht er verloren, erzeugen Sie einfach einen neuen („Neuer Schlüssel“); der alte funktioniert dann nicht mehr.
Ein Zugang gilt für genau einen Hostnamen, und zwar für den Namen selbst und alle Namen darunter (*.meinname.anydns.info).
Er darf nur den Prüfwert setzen – nichts anderes an Ihrem Konto.
Schritt 2: Wartezeit einstellen
AnyDNS arbeitet mit vier Nameservern. Ein neuer Prüfwert ist nach höchstens zwei Minuten auf allen vieren. Fragt Let's Encrypt früher, schlägt die Prüfung fehl.
Stellen Sie deshalb in Ihrem Programm eine Wartezeit von 120 Sekunden ein. Sie heißt je nach Programm
„DNS Sleep“, „Validation Delay“, --dnssleep, „propagation delay“ oder „delayBeforeChecks“. Bei den Anleitungen unten ist sie schon eingetragen.
Proxmox VE
- Rechenzentrum → ACME → Konten: ein Let's-Encrypt-Konto anlegen (falls noch nicht vorhanden).
- Rechenzentrum → ACME → Challenge-Plugins → Hinzufügen: Plugin-ID z. B.
anydns, DNS-API acme-dns, Validierungsverzögerung 120. Ins Feld „API-Daten“:ACMEDNS_BASE_URL=https://anydns.info/acme-dns ACMEDNS_USERNAME=Benutzer ACMEDNS_PASSWORD=Schlüssel ACMEDNS_SUBDOMAIN=Subdomain
- Knoten → System → Zertifikate → ACME → Hinzufügen: Challenge-Typ DNS, Plugin
anydns, Domain meinname.anydns.info. - Zertifikate jetzt bestellen. Proxmox verlängert danach selbst.
OPNsense
- Plugin os-acme-client installieren (System → Firmware → Plugins).
- Dienste → ACME Client → Einstellungen: Plugin aktivieren.
- Konten: ein Konto für Let's Encrypt (Produktion) anlegen.
- Challenge-Typen → Hinzufügen: Typ DNS-01, DNS-Dienst acme-dns, dazu Server/Update-URL, Benutzer, Passwort (= Schlüssel) und Subdomain. DNS Sleep Time: 120.
- Zertifikate → Hinzufügen: Common Name meinname.anydns.info, optional Alternativname
*.meinname.anydns.info, Konto und Challenge-Typ wählen. Unter „Automatisierungen“ z. B. „Restart OPNsense Web UI“, damit die Oberfläche das neue Zertifikat nutzt. - Zertifikat ausstellen; unter System → Einstellungen → Verwaltung als SSL-Zertifikat der Weboberfläche wählen.
pfSense
- Paket acme installieren (System → Package Manager).
- Services → Acme Certificates → Account keys: Schlüssel für Let's Encrypt (Production) erzeugen und registrieren.
- Certificates → Add: im Bereich „Domain SAN list“ die Domain meinname.anydns.info eintragen, Method DNS-acme-dns,
dazu Update-URL
https://anydns.info/acme-dns/update, Benutzer, Passwort (= Schlüssel) und Subdomain. Für die Wildcard eine zweite Zeile mit*.meinname.anydns.infound denselben Werten. - DNS Sleep: 120. Unter „Actions list“ z. B.
/etc/rc.restart_webgui. - „Issue/Renew“ klicken. Das Zertifikat unter System → Advanced → Admin Access auswählen.
Synology NAS
Die Zertifikatsverwaltung im DSM holt Let's Encrypt nur über Port 80. Ohne offenen Port geht es mit dem bewährten Programm acme.sh – einmal per SSH eingerichtet, läuft es danach von selbst:
- In der Systemsteuerung unter Terminal & SNMP SSH aktivieren und sich als Administrator anmelden, dann
sudo -i. - acme.sh installieren und Let's Encrypt als Aussteller wählen:
cd /tmp && wget -O - https://get.acme.sh | sh -s email=ihre@adresse.de --home /usr/local/share/acme.sh cd /usr/local/share/acme.sh ./acme.sh --set-default-ca --server letsencrypt --home /usr/local/share/acme.sh
- Zertifikat holen (Setzen Sie für … die Werte aus dem Kundencenter ein.):
export ACMEDNS_BASE_URL="https://anydns.info/acme-dns" export ACMEDNS_UPDATE_URL="https://anydns.info/acme-dns/update" export ACMEDNS_USERNAME="Benutzer" export ACMEDNS_PASSWORD="Schlüssel" export ACMEDNS_SUBDOMAIN="Subdomain" ./acme.sh --issue --home . --dns dns_acmedns --dnssleep 120 -d meinname.anydns.info -d '*.meinname.anydns.info'
- Ins DSM übernehmen (legt dafür kurz einen eigenen Admin an):
export SYNO_USE_TEMP_ADMIN=1 export SYNO_CERTIFICATE="AnyDNS" export SYNO_CREATE=1 ./acme.sh --deploy --home . -d meinname.anydns.info --deploy-hook synology_dsm
- Für die Verlängerung im Aufgabenplaner eine geplante Aufgabe (Benutzer root, wöchentlich) anlegen:
/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh
- Im DSM unter Sicherheit → Zertifikat das Zertifikat „AnyDNS“ als Standard wählen.
Linux-Server mit acme.sh
Für Server ohne eigene Oberfläche ist acme.sh der einfachste Weg. Setzen Sie für … die Werte aus dem Kundencenter ein.
curl https://get.acme.sh | sh -s email=ihre@adresse.de export ACMEDNS_BASE_URL="https://anydns.info/acme-dns" export ACMEDNS_UPDATE_URL="https://anydns.info/acme-dns/update" export ACMEDNS_USERNAME="Benutzer" export ACMEDNS_PASSWORD="Schlüssel" export ACMEDNS_SUBDOMAIN="Subdomain" ~/.acme.sh/acme.sh --issue --server letsencrypt --dns dns_acmedns --dnssleep 120 -d meinname.anydns.info -d '*.meinname.anydns.info'
acme.sh merkt sich die Zugangsdaten und verlängert per Cronjob selbst. Mit --install-cert kopiert es das Zertifikat an die
richtige Stelle und lädt z. B. nginx oder Apache neu.
Linux-Server mit certbot
Wer schon certbot nutzt, nimmt unser kleines Hook-Skript. Es setzt den Prüfwert
und wartet, bis alle vier Nameserver ihn kennen. Es braucht curl und dig (Debian/Ubuntu: apt install curl dnsutils).
- Zugangsdaten nach
/etc/letsencrypt/anydns.inischreiben und mitchmod 600schützen:ANYDNS_USER=Benutzer ANYDNS_KEY=Schlüssel ANYDNS_SUBDOMAIN=Subdomain
- Skript nach
/usr/local/bin/anydns-certbot-hook.shkopieren,chmod 755. - Zertifikat holen:
certbot certonly --manual --preferred-challenges dns \ --manual-auth-hook /usr/local/bin/anydns-certbot-hook.sh \ -d meinname.anydns.info -d '*.meinname.anydns.info'
certbot merkt sich den Hook; certbot renew verlängert danach automatisch.
Traefik (Docker)
Traefik spricht die Schnittstelle direkt. Legen Sie die Zugangsdatei aus dem Kundencenter (Abschnitt „Zugangsdatei (JSON)“) z. B. als
/etc/traefik/anydns.json ab und geben Sie Traefik zwei Umgebungsvariablen mit:
ACME_DNS_API_BASE=https://anydns.info/acme-dns ACME_DNS_STORAGE_PATH=/etc/traefik/anydns.json
Im Zertifikats-Resolver (traefik.yml):
certificatesResolvers:
anydns:
acme:
email: ihre@adresse.de
storage: /etc/traefik/acme.json
dnsChallenge:
provider: acme-dns
propagation:
delayBeforeChecks: 120s
Bei Traefik vor Version 3.3 heißt die Wartezeit noch delayBeforeCheck: 120 (direkt unter dnsChallenge).
Caddy
Caddy braucht dafür das Modul caddy-dns/acmedns
(z. B. xcaddy build --with github.com/caddy-dns/acmedns). Dann im Caddyfile:
meinname.anydns.info {
tls {
dns acmedns {
username Benutzer
password Schlüssel
subdomain Subdomain
server_url https://anydns.info/acme-dns
}
propagation_delay 2m
}
reverse_proxy localhost:8080
} Andere Programme
Unsere Schnittstelle folgt dem verbreiteten acme-dns-Format. Jedes Programm, das „acme-dns“ als DNS-Anbieter anbietet, funktioniert mit den vier Werten aus dem Kundencenter. Einzige Ausnahme: Programme, die sich selbst bei acme-dns registrieren wollen (z. B. win-acme unter Windows) – dort legen Sie den Zugang immer im Kundencenter an.
Für eigene Skripte: ein einziger Aufruf setzt den Prüfwert.
curl -X POST https://anydns.info/acme-dns/update \
-H "X-Api-User: Benutzer" -H "X-Api-Key: Schlüssel" \
-d '{"subdomain": "Subdomain", "txt": "Prüfwert (43 Zeichen)"}'
Es gelten immer die zwei zuletzt gesetzten Werte (für Name und Wildcard). Nach einem Tag verschwinden sie wieder aus dem DNS.
Wenn es nicht klappt
forbidden- Benutzer oder Schlüssel falsch, der Zugang wurde neu erzeugt oder gelöscht, oder Ihr Paket enthält keine Zertifikate (mehr).
bad_subdomain- Die Subdomain passt nicht zum Zugang – bitte genau aus dem Kundencenter übernehmen.
bad_txt- Das Programm hat keinen gültigen ACME-Prüfwert geschickt.
- „Incorrect TXT record“ / „NXDOMAIN“
- Let's Encrypt hat zu früh gefragt – Wartezeit auf 120 Sekunden oder mehr stellen (siehe Schritt 2).
- „too many certificates already issued“
- Let's Encrypt begrenzt neue Zertifikate je Domain und Woche. Bitte einige Tage später erneut versuchen – Verlängerungen bestehender Zertifikate sind davon nicht betroffen.
Ob der Prüfwert im DNS steht, zeigt dieser Befehl (Linux/macOS):
dig TXT _acme-challenge.meinname.anydns.info @anydns.sw-comnizept.de +short
Kommen Sie nicht weiter? Schreiben Sie uns oder rufen Sie an: 0 25 21 - 8 29 07 73.
Sicherheit und Datenschutz
- Der private Schlüssel des Zertifikats entsteht auf Ihrem Gerät und bleibt dort. Wir sehen nur den Prüfwert.
- Der Zugang darf ausschließlich den Prüfwert für einen Hostnamen setzen. Wir speichern ihn nur verschlüsselt (als Hash).
- Verdacht, dass der Schlüssel in falsche Hände geraten ist? Im Kundencenter einen neuen erzeugen oder den Zugang löschen.
- Let's Encrypt trägt jedes Zertifikat in öffentliche Protokolle ein („Certificate Transparency“). Die Namen darin sind damit öffentlich sichtbar – ein Wildcard-Zertifikat verrät die Namen unterhalb Ihres Hostnamens nicht.