None
Security

Let's Encrypt Wildcard-Zertifikate erstellen

by Viktor Garske on March 14, 2018, midnight, with 1 comments
Language icon Language: this article is available in: en
VGKB Icon Dieser Blogartikel ist themenverwandt mit der Wikiseite Let's Encrypt Wildcardzertifikate aus dem VGKB.

Da die Wildcard-Zertifikate jetzt live sind, stellt sich für einige die Frage, wie man an diese herankommt. Wie schon beschrieben ist die DNS domain validation momentan der einzige Weg.

Und so wird es im Beispiel des certbots gemacht: sofern die aktuellste Version des certbots installiert ist (habe für das Beispiel die git-Version benutzt), folgendes Kommando eingeben und vgapps.de durch die eigene Domain ersetzen.

certbot -d vgapps.de -d *.vgapps.de --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns certonly

(es kann sein, dass certbot durch ./certbot-auto im Beispiel der Git-Version ausgetauscht werden muss) Warum die --server -Option? Bei bestehenden Let's Encrypt-Installationen (wie bei meiner) kann es passieren, dass der alte ACME v1-Endpoint als default genommen wird, an dem die Wildcard-Certs aber noch nicht funktionieren. Deshalb müssen wir etwas nachhelfen. Aufgrund des neuen Endpunkts muss wahrscheinlich intern ein neues Konto angelegt werden, weshalb eure E-Mail-Adresse und eine Bestätigung der Nutzungsbedingungen (erneut) abgefragt werden.

Hiernach (und dem OK, dass Let's Encrypt die IP der anfragenden Instanz öffentlich loggt) wird folgender Text (ähnlich und natürlich bezogen auf eure Domaindaten) angezeigt:

Please deploy a DNS TXT record under the name
_acme-challenge.vgapps.de with the following value:

3AAfr7vk6_Ik0yg8SA_i-aiRagt11E34AdfXM3PuhFU

Der Key muss nun als TXT-Record in der jeweiligen Zone angelegt werden. Danach Enter drücken.

Hiernach wird, wenn die Optionen wie oben eingesetzt werden, noch ein weiterer Key angezeigt, den ihr auch in die Zone eintragen müsst, weil jede angefragte Domain eine eigene Challenge/Validierung benötigt. Und ja, es ist im DNS möglich, dass es zu einer Domäne mehrere Ressource Records gibt. Das Ganze kann dann z.B. in der Zone so aussehen:

_acme-challenge.vgapps.de. 300 IN TXT "3AAfr7vk6_Ik0yg8SA_i-aiRagt11E34AdfXM3PuhFU"
_acme-challenge.vgapps.de. 300 IN TXT "4BAfr7vk6_Ik0yg8SA_i-aiRagt11E34AdfXM3PuhAB"

Ist die Zone geupdatet und ihr habt euch über das Zone-Update vergewissert, kann dann nochmals mit Enter bestätigt werden, sodass die Domains validiert werden. Nach Erledigung sind die Certs wie immer unter /etc/letsencrypt/live/ verfügbar. Die TXT-Records werden bis zur renewal nicht mehr benötigt.

Author image
Viktor Garske

Viktor Garske ist der Hauptautor des Blogs und schreibt gerne über Technologie, Panorama sowie Tipps & Tricks.

Comments (1)

Comments are not enabled for this entry.

Der Nachteil dieser Methode ist, dass jeweils vor Ablauf der Geltungsdauer der letsencrypt-Zertifikate von 3 Monaten eine manuelle Erneuerung fällig ist, bei der wieder zwei solche TXT-Einträge ins Zonefile gemacht werden müssen. Um das zu automatisieren, kann man einen kleinen DNS-Server (z.B. yadifa) auf seinem Server installieren, der ggf. auch nur für die kurze Dauer aktiviert wird, in der certbot läuft. An diesen Server delegiert man die Subdomain _acme-challenge. Ein Script (als Hook in certbot einzubinden) sorgt für die TXT-Einträge. Das Script gibt es hier: https://github.com/hatzfeld/certbot-local-dns/