Zum Hauptinhalt springen

Proxmox Letsencrypt-Zertifikate mit DNS validieren

Die administrative Proxmox-Website lässt sich per Letsecrypt-Zertifikat kostenlos per https absichern. Dafür hat Proxmox einen eingebauten ACME-Client, der Zertifikate bei Letsencrypt automatisch abruft bzw. erneuert. Die Validierung des DNS-Namens passiert dabei am einfachsten über eine Website, die von Proxmox automatisch angelegt wird und die Letsenrypt dann per http abruft. Wenn der Server aber in einem abgesicherten Netzwerk steht und der externe Zugriff per http nicht möglich ist, funktioniert diese Art der Validierung nicht. 

Eine Alternative Form der Prüfung kann über den DNS-Server erfolgen. Dafür muss auf dem DNS-Server ein txt-Record mit einem Schlüssel hinterlegt werden. Der Schlüssel wird von Letsencrypt für jede Verlängerung neu erzeugt und muss dann vom Besitzer der Domäne auf dem DNS-Server angelegt werde. Das ist aber deutlich komplizierter zu automatisieren, da der Webserver nicht einfach nur eine HTML-Datei anlegen, sondern auf einen externen Server zugreifen muss. Zum Glück haben die meisten Internet-Anbieter heutzutage aber eine API, die auch das Anlegen von DNS-Einträgen per Web-API erlaubt, und Proxmox bringt vor konfigurierte Plugins für eine ganze Latte von DNS-Anbietern mit, um genau das zu erledigen. In diesem Artikel möchte ich zeigen, wie man das bei Hetzner mit der Cloud-DNS-API erledigen kann. Für andere Anbieter ist der Prozess ähnlich.

Zuerst muss ein API-Key für den Zugriff auf den DNS bei Hetzner angelegt werden. Loggen Sie sich dafür zuerst in der Hetzner-Console ein. In der Console können Sie die DNS-Einträge über Projekte verwalten. Wenn Ihre Domain mit mehreren anderen Domains in einem Projekt verwaltet wird, legen Sie zuerst ein neues Projekt an und verschieben Sie Ihre Domain dann in das neue Projekt, da ein API-Key pro Projekt, und nicht pro Domain angelegt wird. Verwalten Sie mehrere DNS-Domains in einem Projekt, hat der Besitzer des API-Keys damit sonst Zugriff auf alle Domains, und nicht nur auf die Ihres Proxmox-Servers. 

Im neuen Projekte wählen Sie im linken Menü "Sicherheit" (1) aus, wählen dann im oberen Menü "API-Tokens" (2) und erstellen das Token mit "API-Token hinzufügen" (3).

Im nächsten Schritt geben Sie einen Namen für das API-Token an, und wählen als Berechtigung "Lesen & Schreiben". Wenn Sie die Erstellung des Tokens bestätigen, können Sie das Token im nächsten Fenster offenlegen. Sie müssen das Token hier kopieren und speichern - es kann aus Sicherheitsgründen danach nicht mehr angezeigt werden.

Das Hetzner-Menü zum Erzeugen eines API-Tokens

Im nächsten Schritt geben Sie einen Namen für das API-Token an, und wählen als Berechtigung "Lesen & Schreiben". Wenn Sie die Erstellung des Tokens bestätigen, können Sie das Token im nächsten Fenster offenlegen. Sie müssen das Token kopieren und speichern - es kann aus Sicherheitsgründen danach nicht mehr angezeigt werden.

Nachdem Sie das Token erzeugt haben, müssen Sie es im DNS-Plugin hinterlegen. Das passiert im übergeordneten Datacenter-Menü des Clusters (Deutsch: Rechenzentrum). Wechseln Sie hier in das Menü ACME und wählen Sie im horizontalen Menü unter "Challenge-Plugins" den Button "Hinzufügen" aus. Sie müssen eine Plugin-ID eingeben - den Namen, der später für in den ACME-Einstellungen angezeigt wird. Die ID ist frei wählbar. Im Eintrag "DNS-API" verbirgt sich ein Dropdown-Menü mit allen verfügbaren DNS-Plugins. Für Hetzner wählen Sie hier "Hetzner Cloud DNS" aus, und im Eintrag "HETZNER_Token=" hinterlegen Sie den API-Key, der Ihnen von Hetzner erstellt wurde. Anschließend speichern Sie die Plugin-Konfiguration mit "Hinzufügen". 

Letsencrypt benötigt ein Konto, in dem die verwalteten DNS-Namen hinterlegt werden. Das Konto können Sie ebenfalls einmalig im Rechenzentrum hinterlegen oder neu anlegen. Fügen Sie das Konto im ACME-Menü des Rechenzentrums unter "Konten" hinzu. Sie können hier eine Email-Adresse eines bestehenden ACME-Kontos angeben, oder mit einer neuen Adresse ein neues Konto anlegen. Der Kontoname wird nur auf dem Proxmox-Cluster gespeichert. Er wird verwendet, um auf die Konfiguration zu verweisen. Beim ACME-Verzeichnis haben Sie zwei Optionen - "Let´s Encrypt V2" oder "Let´s Encrypt V2 Staging". Die Staging-Umgebung ist zum Testen gedacht und erlaubt mehr Registrierungs-Anfragen als die Produktions-Umgebung (pro Stunde). Außerdem müssen Sie die Nutzungsbedingungen (Terms of Use) akzeptieren. Mit registrieren schließen legen Sie die Konfiguration an. 

Wechseln Sie jetzt in die Konfiguration der einzelnen Knoten im Datacenter in das Menü System -> Zertifikate. Unter "Account verwenden" finden Sie den Namen des eben hinterlegen ACME-Kontos. Wählen Sie den Namen des Kontos aus und bestätigen Sie mit "Anwenden". 

Im letzten Schritt gehen Sie jetzt auf die einzelnen Server und konfigurieren den ACME-Client. Wählen Sie hierzu unter System den Menüpunkt "Zertifikate" aus, und starten Sie Konfiguration mit dem Button "Hinzufügen" unter "ACME".

Als Validierungstyp wählen Sie statt HTTP DNS. Unter Plugin wählen Sie den Namen der DNS-Konfiguration aus, die Sie im Datacenter angelegt haben. Unter Domäne geben Sie den Vollqualifizierten Domänennamen des Proxmox-Servers an. Bestätigen Sie die Einstellungen mit "Erstellen".

×
Stay Informed

When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.

 

Comments

No comments made yet. Be the first to submit a comment
Already Registered? Login Here
Donnerstag, 08. Oktober 2026