Let's Encrypt mit DNS-API
Ein von allen Browsern akzeptiertes Zertifikat, das Proxmox automatisch ausstellt und erneuert – über die API Ihres DNS-Anbieters.
VexCore HV richtet den ACME-Client von Proxmox für den Node ein, auf dem es läuft. Proxmox bestellt das Zertifikat bei Let's Encrypt, legt es als Node-Zertifikat ab und erneuert es selbstständig. VexCore HV liefert es in der Quelle Automatic aus – die Proxmox-Oberfläche auf Port 8006 erhält dasselbe Zertifikat.
Let's Encrypt prüft die Domain über einen TXT-Eintrag im DNS (DNS-Challenge). VexCore HV muss deshalb nicht aus dem Internet erreichbar sein.
DNS-Anbieter ohne API?
Dann lesen Sie zuerst Let's Encrypt ohne DNS-API. Der Ablauf ist derselbe, mit einem zusätzlichen CNAME-Eintrag.
Voraussetzungen
- Eine eigene Domain, z. B.
firma.de, deren DNS bei einem der rund 100 unterstützten Anbieter liegt (Cloudflare, Hetzner, IONOS, Namecheap, …), und ein API-Token dieses Anbieters, das DNS-Einträge bearbeiten darf. - Der gewünschte Name, z. B.
vexcore.firma.de, muss in Ihrem Netzwerk auf den Host zeigen: ein A-Eintrag mit der privaten IP-Adresse des Hosts oder ein Eintrag in Ihrem lokalen DNS. - Router mit DNS-Rebind-Schutz brauchen die Domain als Ausnahme – bei der FRITZ!Box unter Heimnetz → Netzwerk → Netzwerkeinstellungen → DNS-Rebind-Schutz.
- Der Proxmox-Host erreicht Let's Encrypt und die API Ihres DNS-Anbieters über das Internet.
- Berechtigung
tls.managein VexCore HV.
Erst mit Staging testen
Let's Encrypt stellt in Produktion höchstens 5 identische Zertifikate pro Woche aus und begrenzt fehlgeschlagene Prüfungen pro Stunde. Testen Sie die Einrichtung mit einem Staging-Konto und wiederholen Sie die Bestellung danach mit einem Produktionskonto.
Einrichtung
Öffnen Sie Settings → HTTPS. Im Bereich Let's Encrypt (via Proxmox ACME) klicken Sie auf Set up Let's Encrypt…. Der Assistent hat vier Schritte.
acme-wizard.pngHaben Sie mehrere Proxmox-Cluster eingebunden, wählen Sie oben rechts unter Server entry den Eintrag des Nodes, auf dem VexCore HV läuft.
ACME account
Wählen Sie die Zertifizierungsstelle:
- Staging – zum Testen; die Zertifikate sind nicht vertrauenswürdig, die Limits großzügig.
- Production – vertrauenswürdige Zertifikate; 5 identische pro Woche.
Geben Sie einen Account name (vorgeschlagen: vexcore-staging bzw. default) und eine E-mail für Hinweise der CA ein, akzeptieren Sie die Nutzungsbedingungen und klicken Sie auf Register account.
Ein vorhandenes Konto wählen Sie im Auswahlfeld; ein weiteres legen Sie mit New account an.
Konto in Proxmox anlegen
Proxmox erlaubt nur root@pam, ACME-Konten anzulegen – API-Tokens dürfen das nicht. VexCore HV erledigt das auf dem Host selbst. Weist der Assistent darauf hin, dass das hier nicht möglich ist, legen Sie das Konto in Proxmox unter Datacenter → ACME → Accounts → Add an und klicken anschließend auf check again.
DNS provider
Klicken Sie auf New plugin (beim ersten Mal öffnet sich das Formular direkt):
- Plugin name (in Proxmox): ein Name für die Zugangsdaten, z. B.
dnsodercloudflare. - DNS provider: Ihr Anbieter. Welche unterstützt werden, zeigt Which providers are supported? mit Suchfeld.
- Die Felder darunter kommen aus Proxmox. Füllen Sie nur aus, was Ihr Anbieter braucht – meist nur das API-Token. Leere Felder werden weggelassen.
Klicken Sie auf Create plugin.
Für Anbieter ohne Felddefinitionen erscheint stattdessen ein Textfeld API data: ein KEY=value pro Zeile, wie in der acme.sh-Dokumentation des Anbieters angegeben.
Wo die Zugangsdaten liegen
Die Zugangsdaten gehen nur an Proxmox (gespeichert unter /etc/pve/priv). VexCore HV speichert sie nicht, zeigt sie nie wieder an und schreibt sie in kein Protokoll.
Beispiel Cloudflare
- Ein API-Token (
CF_Token) genügt, wenn es Zone → DNS → Edit und Zone → Read für die Zone darf. - Darf das Token nur Zone → DNS → Edit, tragen Sie zusätzlich die Zone ID (
CF_Zone_ID) ein – zu finden in der Übersicht der Domain unter API → Zone ID. - Ein Plugin mit
CF_Zone_IDgilt nur für genau diese Zone. - Der ältere globale API-Key braucht
CF_KeyundCF_Emailstatt des Tokens.
Names on the certificate
Tragen Sie bis zu 5 Namen für den Node ein, z. B. vexcore.firma.de, und wählen Sie je Name das DNS-Plugin. Jeder Name muss in einer Zone liegen, die das Plugin bearbeiten darf.
- Keine Platzhalter:
*.firma.deunterstützt der ACME-Client von Proxmox nicht. Das ist auch nicht nötig – tragen Sie jeden Namen einzeln ein, die Erneuerung läuft automatisch. - Rufen Sie VexCore HV gerade über eine Adresse auf, die nicht auf dem Zertifikat stehen wird (z. B. die IP-Adresse), weist der Assistent darauf hin. Öffnen Sie VexCore HV nach der Bestellung unter dem neuen Namen.
Klicken Sie auf Save names for <Node>.
Get the certificate
Klicken Sie auf Order certificate. Proxmox bestellt das Zertifikat; der Assistent zeigt das Protokoll live.
- Beim Einspielen startet die Proxmox-Oberfläche kurz neu; Port 8006 ist für einen Moment nicht erreichbar. VexCore HV übernimmt das Zertifikat sofort.
- Lieferte VexCore HV bisher ein hochgeladenes oder selbst signiertes Zertifikat aus, stellt es die Quelle nach der Ausstellung auf Automatic um. Ein hochgeladenes Zertifikat bleibt gespeichert.
- Hat der Node bereits ein eigenes Zertifikat, wird es ersetzt – auch für Port 8006. Der Assistent fragt vorher nach.
Ist die Bestellung erfolgreich, lädt die Seite neu.
Nach der Bestellung
- Öffnen Sie VexCore HV unter
https://vexcore.firma.de– bei einem anderen Port als 443 mit Portangabe, z. B.https://vexcore.firma.de:3000. Über die IP-Adresse zeigt der Browser eine Namenswarnung. - Haben Sie mit Staging getestet, zeigt der Browser „(STAGING)“ bzw. eine nicht vertrauenswürdige CA – das ist erwartet. Legen Sie in Schritt 1 ein Production-Konto an, wählen Sie es aus, speichern Sie die Namen erneut und bestellen Sie noch einmal.
- Der Status zeigt die Namen, Konto und Plugin, das Ablaufdatum und ab wann Proxmox erneuert – siehe Erneuerung.
Server-Einträge mit Zertifikatsprüfung
Server-Einträge auf der Seite Cluster, die das Proxmox-Zertifikat prüfen, funktionieren nicht mehr, wenn ihre Adresse nicht auf dem neuen Zertifikat steht. Der Assistent warnt davor. Ändern Sie die Adresse auf einen der neuen Namen oder schalten Sie die Prüfung für diesen Eintrag aus.
Einstellungen ändern
- Change settings… öffnet den Assistenten erneut. Beim Speichern listet VexCore HV auf, was sich ändert. Das aktuelle Zertifikat bleibt in Gebrauch, bis Sie neu bestellen.
- Beim Bearbeiten eines Plugins ändern sich nur Felder, die Sie ausfüllen. Leere Felder behalten ihren gespeicherten Wert (stored); Remove löscht einen einzelnen Wert. Wechseln Sie den Anbieter, werden alle gespeicherten Zugangsdaten des Plugins ersetzt.
Let's Encrypt beenden
Stop using Let's Encrypt… entfernt die Namen vom Node und löscht dessen Let's-Encrypt-Zertifikat. Proxmox und VexCore HV verwenden danach wieder das Proxmox-Node-Zertifikat (mit Browserwarnung).
- Optional löscht VexCore HV dabei auch das DNS-Plugin und deaktiviert das ACME-Konto – sofern kein anderer Node des Clusters sie nutzt.
- Rufen Sie VexCore HV über einen Namen auf, den das Node-Zertifikat nicht abdeckt, nennt der Dialog die IP-Adresse, unter der Sie es danach öffnen.
Nicht mehr genutzte Plugins und Konten (z. B. das Staging-Konto nach dem Wechsel auf Production) erscheinen unter Not used by any node mit Delete bzw. Deactivate.
Token beim DNS-Anbieter widerrufen
Das Löschen eines DNS-Plugins entfernt das API-Token nur aus Proxmox. Gültig bleibt es, bis Sie es bei Ihrem DNS-Anbieter widerrufen – bei Cloudflare unter My Profile → API Tokens.
Hinweise
- VexCore HV ist hier nur die Oberfläche für den ACME-Client von Proxmox. Läuft VexCore HV nicht auf einem Proxmox-Node, richten Sie ACME direkt in Proxmox ein (Datacenter → ACME, dann Node → System → Certificates) oder laden ein Zertifikat hoch.
- Das API-Token, das VexCore HV bei der Installation in Proxmox anlegt (Rolle Administrator), hat alle nötigen Rechte.