Änderungen

Zur Navigation springen Zur Suche springen

Let's Encrypt Wildcardzertifikate

4.356 Bytes hinzugefügt, 17:08, 17. Jan. 2019
Neu angelegt
[[File:Let's Encrypt Certificate Firefox example.png|thumb|Let's Encrypt ermöglicht seit März 2018 die Ausstellung von Wildcardzertifikaten]]
Mit '''Wildcardzertifikaten''' es im Gegensatz zu "normalen" Zertifiakten möglich, die Gültigkeit eines Zertifikats auf eine unbestimmte Anzahl an DNS-Namen (i.d.R. Subdomains) zu erweitern. Während ein Zertifikat im Regelfall für eine fest definierte Domain gültig ist (z.B. <code>vgapps.de</code>), wird mit einem Platzhalter, auch ''Wildcard'' genannt, der Geltungsbereich entsprechend erweitert. Ein Zertifikat für <code>*.vgapps.de</code> würde somit für <code>www.vgapps.de</code>, <code>subdomain1.vgapps.de</code> oder <code>my-test.vgapps.de</code>, nicht aber für <code>vgapps.de</code> oder <code>www.test.vgapps.de</code> gültig sein, da zwangsläufig das Domainlevel übereinstimmen muss.

== Vorteile und Nachteile ==
Vorteil im Gegensatz zu fest definierten Zertifikaten ist:

* die höhere Flexibilität (ein Zertifikat für alles)
* Wartungsfreundlichkeit (es muss ebenfalls nur ein Zertifikat erneuert werden)

Nachteile ergeben sich aus

* dem höheren Aufwand bei der Verifikation (bisher nur DNS challenge) und
* dem Missbrauchspotential (ein entwendetes, nicht gesperrtes Zertifikat kann auf weitere hierfür gültige Domains angewandt werden)

== Wildcard-Zertifikat einrichten ==
=== mit certbot ===
{{Blogartikel|https://blog.v-gar.de/2018/03/lets-encrypt-wildcard-zertifikate-erstellen/}}

Voraussetzungen:
* Installation des ACME-Client [https://certbot.eff.org/ certbot]
* Möglichkeit, TXT-Records in der DNS-Zone zu erstellen

<syntaxhighlight lang="sh">
certbot -d vgapps.de -d *.vgapps.de --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns certonly
</syntaxhighlight>

{| class="wikitable"
! Kommandoausschnitt !! Bedeutung
|-
| <code>certbot</code> || Executable (evtl. ist alternativ <code>./certbot-auto</code> benötigt, insb. bei Git-Version)
|-
| <code>-d vgapps.de</code> || Zertifikat soll für die eigentliche Domain gültig sein...
|-
| <code>-d *.vgapps.de</code> || ...sowie per Wildcard für alle Subdomains ersten Levels
|-
| <code>--server https://acme-v02.api.letsencrypt.org/directory</code> || API-Endpunkt spezifizieren (nur v2 unterstützt Wildcard)
|-
| <code>--manual</code> || manuelle challenge (nicht automatisierbar, insb. für renew wichtig)
|-
| <code>--preferred-challenges dns</code> || DNS challenge anwählen
|-
| <code>certonly</code> || nur Zertifikat holen, nicht weitere Dienste (Apache, ...) hierfür konfigurieren
|}

Mitunter muss neues Konto angelegt werden, weshalb die 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 die konkreten Domaindaten) angezeigt:

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

3AAfr7vk6_Ik0yg8SA_i-aiRagt11E34AdfXM3PuhFU</pre>

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:

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

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.

Hinweis zur renewal: die Renewal kann aufgrund der Option <code>--manual</code> nicht wie üblich mit ''certbot renew'' durchgeführt werden, sondern erfordert, dass das gleiche oben angegebene Kommando nochmals ausgeführt wird. Hierbei wird glücklicherweise kein <code>-0001</code>-Unterordner erstellt.

[[Kategorie:Linux]]
[[Kategorie:Let's Encrypt]]

Navigationsmenü