Einführung
In diesem Beitrag geht es darum auf Cloud Load Balancern die automatische Zertifikatsvergabe auch mit extern bereitgestellten Domains zu nutzen.
Voraussetzungen
- Eine Top-Level-Domain, z.B.
example.com
- DNS Hoster mit der Möglichkeit
NS
Records zu erstellen - Einen Cloud Load Balancer
Schritt 1 - Anlegen der Hetzner DNS Zone
In diesem Schritt wird im Hetzner DNS Console eine DNS Zone für die Domain example.com
angelegt, diese wird später vom Load Balancer verwendet um die _acme-challenge
zu verarbeiten.
Eine neue DNS Zone kann unter dns.hetzner.com angelegt werden.
Dazu einfach den Namen der Domain angeben und das automatische Scannen deaktivieren.
Die angelegte DNS Zone sollte nun so aussehen:
Die markierten Einträge werden nicht benötigt und sollten daher gelöscht werden.
Schritt 2 - Externe DNS Konfiguration
Nun geht es darum die DNS Zone _acme-challenge.example.com
der externen Domain auf die Hetzner DNS Zone umzuleiten.
Um das zu bewerkstelligen müssen bei dem jeweiligen DNS Hoster mehrere NS
Einträge angelegt werden.
Diese sind wie folgt aufgebaut:
_acme-challenge.example.com IN NS hydrogen.ns.hetzner.com.
Die DNS Server können der Hetzner DNS Zone entnommen werden.
Es sollte für jeden DNS Server ein NS
Record bei dem externen DNS Hoster angelegt werden.
Bei Cloudflare sieht die Konfiguration in etwa so aus:
Schritt 3 - Einrichtung des Load Balancers
Im Load Balancer muss nun ein TLS-Termination
Service eingerichtet werden.
In der Hetzner Cloud Console muss dazu der Load Balancer ausgewählt und anschließend zu "Services" navigiert werden. Klicke dort auf Service hinzufügen
» TLS-Termination
.
Zu beachten ist hier, wie der Traffic vom Load Balancer weiter zum Cloud Server gelangt. Die Standardeinstellung ist die unverschlüsselte Übertragung über
HTTP
und das öffentliche Interface des Servers. Hier würde es sich dringend anbieten auf dem Service ein Self-Signed Zertifikat zu hinterlegen und den Load Balancer aufHTTPS
zuHTTPS
zu konfigurieren. Zusätzlich kann der Traffic auch über ein privates Netzwerk geleitet werden, was zuvor aber konfiguriert werden muss.
Wähle beim Erstellen des Services Zertifikat
» + Zertifikat hinzufügen
aus und klicke auf Zertifikat erstellen
. Weitere Information bezüglich des Unterschiedes zwischen Zertifikat erstellen
und Zertifikat hochladen
, können in diesem FAQ-Eintrag nachgelesen werden.
Es können ein Name und eine DNS Zone angegeben werden. Hier wird dann die oben erstellte DNS Zone ausgewählt.
In der Auswahl können entweder einzele Sub-Domains (
ssl.example.com
) oder Wildcard Zertifikate (*.example.com
) ausgestellt werden. Im oben gezeigen Beispiel ist es ein Wildcard Zertifikat.
Danach ist die Einrichtung des Zertifikats abgeschlossen. Nun können die DNS-Einträge, die für den jeweiligen Service benötigt werden, in der Hetzner DNS Console angelegt werden. Dafür muss schlicht ein A
Record hinzugefügt werden, in welchem die (Sub-)Domain auf den Load Balancer zeigt. Beispiel:
Typ | Name | Wert |
---|---|---|
A | ssl.example.com | <load-balancer-ip> |
Danach läuft der Service dann unter dem TLS Zertifikat.
Ergebnis
In diesem Beitrag wurde gezeigt wie man trotz einer externen Domain das Let's Encrypt Feature der Load Balancer verwenden kann, ohne die Domain komplett umziehen zu müssen.