ACME im Detail · 18.7
DNS-01 Challenge Delegation (CNAME-Alias)
Bei der DNS-01 Challenge Delegation validiert die CA die Namen des Zertifikats über einen CNAME-Record, der in eine separate DNS-Zone zeigt, die Alias-Zone. In TLSPilot heisst das DNS-01 Alias Mode. Sie verwenden ihn, wenn TLSPilot nicht in die Zone Ihrer Domains schreiben soll:
- Keine API-Rechte auf der Produktivzone: Das Team, das TLSPilot betreibt, erhält keinen Schreibzugriff auf die Zone der Firmendomains, zum Beispiel weil ein anderes Team oder ein externer Provider sie verwaltet.
- Sicherheit: Das DNS-Credential in TLSPilot braucht nur Zugriff auf die Alias-Zone. Wird es missbraucht, kann ein Angreifer die Records Ihrer Produktivzone nicht ändern, zum Beispiel A- oder MX-Records.
- Provider ohne API: Die Produktivzone liegt bei einem Provider ohne API, die TLSPilot unterstützt. Die Alias-Zone läuft bei einem unterstützten DNS-Provider.
So funktioniert es
Ein statischer CNAME-Record _acme-challenge.<name> in der Produktivzone zeigt auf _acme-challenge.<name>.<alias domain> in der Alias-Zone. In diesem Handbuch ist die Alias-Zone servicedomain.net: eine eigene Second-Level-Domain, sodass keine Alias-Subdomain nötig ist. In der Abbildung erscheint sie als Service-Zone. Fragt die CA den TXT-Record _acme-challenge.<name> ab, folgt sie dem CNAME, was normales DNS-Verhalten ist, und liest den TXT-Record in der Alias-Zone. TLSPilot schreibt den TXT-Record nur in der Alias-Zone, mit dem im Zertifikat gewählten DNS-Provider und DNS-Credential, und löscht ihn nach der Validierung wieder. Die Produktivzone wird nie geändert. Die CNAME-Records werden einmal erstellt und bleiben für alle Erneuerungen bestehen.
Jedes Zertifikat hat eine Alias-Domain, und der gewählte DNS-Provider und das DNS-Credential gelten für sie. Die Alias-Domain ist zugleich die Zone beim DNS-Provider.

Die Nummern entsprechen den nummerierten Schritten in der Abbildung:
- DoH-Prüfung: Beide CNAMEs existieren und zeigen auf servicedomain.net: Bevor TLSPilot etwas bestellt, fragt es die öffentlichen Resolver von Cloudflare und Google über DNS over HTTPS (DoH), ob
_acme-challenge.shop.example.comund_acme-challenge.www.example.orgals CNAME-Records in den Produktivzonen existieren und aufservicedomain.netzeigen. Fehlt ein CNAME-Record oder zeigt er woandershin, gibt es mehr als einen CNAME oder existiert unter demselben Namen ein TXT-Record, startet TLSPilot die Bestellung nicht und zeigt, welcher Record betroffen ist. Antwortet keiner der Resolver, protokolliert TLSPilot eine Warnung und fährt mit der Bestellung fort. - Zertifikat bestellen, pro Name ein DNS-01-Token erhalten: TLSPilot bestellt das Zertifikat für
shop.example.comundwww.example.orgbei der ACME-CA. Die CA liefert für jeden der beiden Namen eine DNS-01-Challenge mit eigenem Token. - TXT-Records schreiben (gewählter Provider und gewähltes Credential): TLSPilot schreibt die Token-Werte als TXT-Records
_acme-challenge.shop.example.com.servicedomain.netund_acme-challenge.www.example.org.servicedomain.netüber die API des DNS-Providers, mit dem im Zertifikat gewählten DNS-Provider und DNS-Credential. Die Produktivzonenexample.comundexample.orgwerden nicht geändert. - CA benachrichtigen: Challenge bereit: Nach der DNS-01-Propagationswartezeit teilt TLSPilot der CA mit, dass die Challenges zur Validierung bereit sind.
- _acme-challenge.<name> abfragen: Die CA fragt die TXT-Records
_acme-challenge.shop.example.comund_acme-challenge.www.example.orgim DNS ab. Die DNS-Auflösung folgt den statischen CNAME-Records inservicedomain.net, wo die CA die TXT-Records liest (gestrichelter Pfeil in der Abbildung). - Validieren und Zertifikat ausstellen: Stimmen die TXT-Werte mit den Tokens beider Namen überein, bestätigt die CA die Challenges. TLSPilot sendet den CSR, und die CA stellt das Zertifikat aus, das TLSPilot mit seiner Kette herunterlädt.
- TXT-Records löschen: TLSPilot löscht die beiden TXT-Records in
servicedomain.netüber den DNS-Provider wieder. Die CNAME-Records in den Produktivzonen bleiben bestehen und werden für jede Erneuerung verwendet.
Beispiel
Wie in der Abbildung verwendet ein Zertifikat mit dem Common Name shop.example.com und dem SAN www.example.org die Alias-Domain servicedomain.net. Es braucht zwei CNAME-Records, einen pro Hostname. Die beiden Namen gehören zu zwei verschiedenen Produktivzonen, aber beide CNAME-Records zeigen auf dieselbe Alias-Zone:
| Namen im Zertifikat | CNAME-Record in der Produktivzone | Zeigt auf (Alias-Zone) |
|---|---|---|
| shop.example.com | _acme-challenge.shop.example.com | _acme-challenge.shop.example.com.servicedomain.net |
| www.example.org | _acme-challenge.www.example.org | _acme-challenge.www.example.org.servicedomain.net |
Ein Wildcard-Name teilt seinen CNAME-Record mit dem Namen ohne *.: Enthielte das Zertifikat zusätzlich example.com und *.example.com, teilten sich beide den einen CNAME-Record _acme-challenge.example.com → _acme-challenge.example.com.servicedomain.net.
In Zonendatei-Notation lautet der erste Record:
_acme-challenge.shop.example.com. CNAME
_acme-challenge.shop.example.com.servicedomain.net.
Hinweise
- Eigene Alias-Zone: Sie richten die Alias-Zone selbst bei einem unterstützten DNS-Provider ein. iTrain hostet keine Alias-Zonen.
- DNSSEC: DNSSEC ist nicht erforderlich. Ist es in der Produktivzone oder in der Alias-Zone eingeschaltet, muss die Kette über den CNAME- und den TXT-Record korrekt signiert sein, siehe Kapitel CAA-Records.
- Alte TXT-Records: Entfernen Sie bestehende TXT-Records unter
_acme-challenge.<name>in der Produktivzone, zum Beispiel von einer früheren Validierung. Ein Name mit CNAME-Record darf keine weiteren Records haben. - Negative Caching: Hat ein Resolver einen Namen abgefragt, bevor dessen CNAME-Record existierte, kann er die negative Antwort für die negative TTL der Zone behalten. Warten Sie nach dem Erstellen eines CNAME-Records einige Minuten, bevor Sie ihn prüfen oder das Zertifikat bestellen.
- CAA: CAA-Records gelten für die ursprüngliche Domain. Die CA prüft CAA bei den Namen im Zertifikat und ihren übergeordneten Domains, nicht bei der Alias-Zone, siehe Kapitel CAA-Records.
- Edition: Der DNS-01 Alias Mode ist überall verfügbar, wo DNS-01 verfügbar ist. Er braucht keine separate Lizenz.
Einrichtung in TLSPilot: Kapitel DNS-01 Alias Mode einrichten. Fehler und Lösungen: Kapitel Fehlerbehebung: DNS-01.
Schritt 1 des Ablaufs ist in TLSPilot sichtbar: Check CNAMEs fragt die öffentlichen Resolver über DoH ab und listet für jeden Namen auf, ob sein CNAME-Record in die Alias-Zone zeigt, siehe Abbildung Check CNAMEs bestätigt die CNAME-Records des DNS-01 Alias Mode.
