Proxmox VE: SSL-Zertifikat austauschen (pveproxy)
Eigenes SSL-Zertifikat in Proxmox VE per GUI oder pvenode cert set hochladen, Cluster-CA unangetastet lassen, jeden Knoten aktualisieren, Port 8006 prüfen - oder per ACME erneuern.
Weboberfläche und API von Proxmox VE stellt pveproxy auf Port 8006 jedes Knotens
bereit. Standardmäßig nutzen sie ein Knotenzertifikat, das von der clustereigenen CA
signiert ist und dem Browser nicht vertrauen. Ein eigenes Zertifikat von einer
öffentlichen oder internen CA liegt pro Knoten als
/etc/pve/nodes/<node>/pveproxy-ssl.pem und pveproxy-ssl.key und hat Vorrang vor
dem Standard. (/etc/pve/local zeigt auf das Verzeichnis des aktuellen Knotens.)
Voraussetzungen
-
Bereiten Sie eine PEM-Kettendatei vor: zuerst das Knotenzertifikat, danach die Zwischenzertifikate - etwa durch Aneinanderhängen der Base64/PEM-Dateien Ihrer CA:
cat node.crt intermediate.crt > fullchain.pem. -
Bereiten Sie den passenden privaten Schlüssel ohne Passphrase vor. Proxmox startet
pveproxyunbeaufsichtigt, ein verschlüsselter Schlüssel funktioniert deshalb nicht. Passphrase entfernen:openssl pkey -in encrypted.key -out private.key chmod 600 private.keyBewahren Sie den unverschlüsselten Schlüssel nur auf dem Knoten auf und löschen Sie temporäre Kopien danach.
-
Der SAN muss den FQDN jedes Knotens abdecken, auf dem das Zertifikat genutzt wird. Ein Zertifikat mit allen Knotennamen oder ein Wildcard-Zertifikat kann auf jedem Knoten installiert werden.
-
Sichern Sie das aktuelle eigene Zertifikat, falls vorhanden:
cp /etc/pve/local/pveproxy-ssl.pem /etc/pve/local/pveproxy-ssl.key /root/ -
Prüfen Sie, ob der Cluster gesund ist (
pvecm statuszeigt Quorum), und halten Sie SSH- oder Konsolenzugang bereit.
Ersetzen oder bearbeiten Sie niemals die Dateien, die Proxmox selbst verwaltet:
| Datei | Zweck |
|---|---|
/etc/pve/local/pve-ssl.pem, /etc/pve/local/pve-ssl.key | Das von der Cluster-CA ausgestellte Knotenzertifikat |
/etc/pve/pve-root-ca.pem, /etc/pve/priv/pve-root-ca.key | Die Cluster-CA |
Proxmox nutzt sie für das clusterinterne Vertrauen. Das eigene Zertifikat liegt daneben und ersetzt sie nie.
Zertifikat Schritt für Schritt austauschen
Arbeiten Sie Knoten für Knoten, entweder in der Weboberfläche oder in der Shell.
In der Weboberfläche: Knoten auswählen, dann System > Certificates > Upload
Custom Certificate. Kettendatei und privaten Schlüssel einfügen oder laden. Ist
bereits ein eigenes oder ein ACME-Zertifikat installiert, bestätigen Sie das
Überschreiben. Die Seite lädt neu, nachdem pveproxy neu gestartet ist.
In der Shell des Knotens: beide Dateien auf den Knoten kopieren (etwa mit scp),
dann:
pvenode cert set /root/fullchain.pem /root/private.key --restart 1--restart 1 startet pveproxy neu, damit das neue Zertifikat ausgeliefert wird. Ist
bereits ein eigenes oder ein ACME-Zertifikat installiert, verweigert der Befehl das
Überschreiben ohne --force 1 - setzen Sie es, wenn Sie bewusst ersetzen, und beachten
Sie, dass es auch ein funktionierendes ACME-Zertifikat ersetzt.
Danach, für beide Wege:
-
Prüfen, was der Knoten jetzt verwendet:
pvenode cert info -
Mit dem nächsten Knoten weitermachen. Jeder Knoten hat sein eigenes Zertifikat; die Installation auf einem Knoten ändert die anderen nicht.
Stattdessen per ACME erneuern lassen
Proxmox VE hat einen eingebauten ACME-Client. Mit Let's Encrypt oder einer anderen ACME-CA stellt es das Knotenzertifikat selbst aus und erneuert es, sodass nichts von Hand ausgetauscht werden muss:
- HTTP-01: Validierung über den eigenen Webserver von Proxmox auf Port 80. Der FQDN des Knotens muss öffentlich auf den Knoten auflösen, und Port 80 muss für die CA erreichbar sein.
- DNS-01: Validierung über ein DNS-API-Plugin (Proxmox nutzt die Plugins von acme.sh), konfiguriert mit den API-Zugangsdaten Ihres DNS-Anbieters. Der Knoten muss dafür nicht aus dem Internet erreichbar sein.
Registrieren Sie unter Datacenter > ACME ein ACME-Konto (und legen Sie dort für DNS-01 ein DNS-Plugin an). Fügen Sie dann auf jedem Knoten unter System > Certificates im ACME-Bereich seine Domains hinzu und bestellen Sie das Zertifikat - in der Oberfläche oder mit:
pvenode acme cert orderProxmox erneuert ACME-Zertifikate automatisch, sobald sie in weniger als 30 Tagen
ablaufen. ACME und ein manuell hochgeladenes eigenes Zertifikat schließen sich aus:
Solange ein eigenes Zertifikat installiert ist, ersetzt die Bestellung es nur mit
--force 1.
Produktspezifische Hinweise
Ein Neustart von pveproxy unterbricht kurz die Verbindungen zu Weboberfläche und API
dieses Knotens; aktualisieren Sie die Knoten deshalb nacheinander. Konsole, SPICE und
das clusterinterne Vertrauen hängen an den von Proxmox verwalteten Zertifikaten, die das
eigene Webzertifikat nicht ersetzt.
Neues Zertifikat prüfen
systemctl status pveproxy
pvenode cert info
openssl s_client -connect node1.example.com:8006 -servername node1.example.com -showcerts </dev/nullPrüfen Sie in der Ausgabe Antragsteller und SAN, Aussteller, Ablaufdatum und ob das Zwischenzertifikat mitgesendet wird. Melden Sie sich dann an der Oberfläche jedes Knotens an und testen Sie API-Clients und die VM-Konsole.
Rollback
Spielen Sie das gesicherte Zertifikat mit demselben Befehl wieder ein und erzwingen Sie das Überschreiben:
pvenode cert set /root/pveproxy-ssl.pem /root/pveproxy-ssl.key --force 1 --restart 1Oder entfernen Sie das eigene Zertifikat, damit der Knoten auf sein vom Cluster
signiertes Standardzertifikat zurückfällt. Das Argument 1 startet pveproxy neu:
pvenode cert delete 1Beide Befehle wirken auf den Knoten, auf dem Sie sie ausführen.
Häufige Probleme
- Der private Schlüssel hat noch eine Passphrase, deshalb kann
pveproxyihn nicht verwenden. - Nur ein Clusterknoten wurde aktualisiert.
- Statt ein eigenes Zertifikat hochzuladen, wurden
pve-ssl.*oder die Dateien der Cluster-CA überschrieben. - Die Kette hat die falsche Reihenfolge, oder der FQDN des Knotens fehlt im SAN.
- Ein erzwungener Upload hat ein funktionierendes ACME-Zertifikat ersetzt, oder eine erzwungene ACME-Bestellung das eigene Zertifikat.
Zertifikatstausch mit aethercert automatisieren
Das aethercert-Deployment-Ziel für Proxmox lädt die vollständige Kette (Serverzertifikat zuerst) und den unverschlüsselten Schlüssel über die REST-API auf den gewählten Knoten, mit aktiviertem Überschreiben und Neustart. Legen Sie pro Knoten, der Oberfläche oder API bereitstellt, ein eigenes Ziel an.
Unter Deployment-Ziele finden Sie die Felder dieser Vorlage, die Voraussetzungen auf dem Host und den Stand der Verifizierung.
Quellen
Nutanix Prism
SSL-Zertifikat auf Nutanix Prism Element oder Prism Central austauschen: unterstützte Schlüsseltypen, Replace Certificate in der Oberfläche oder ncli ssl-certificate import, Kettendatei, Prüfung.
Kubernetes
Zertifikat in einem kubernetes.io/tls-Secret austauschen: klären, wer es verwaltet (cert-manager, Helm, GitOps), direkt oder per neuem Secret ersetzen, nur bei Bedarf neu starten, prüfen.