aethercert
Dokumentation

vCenter: Machine-SSL-Zertifikat austauschen (7 & 8)

Machine-SSL-Zertifikat von vCenter 7/8 per vSphere Client oder certificate-manager austauschen: CSR, richtige Kettenreihenfolge, vCHA, die /tmp-Falle und Prüfung in VECS.

Das Machine-SSL-Zertifikat von vCenter ist das Zertifikat, das Clients am vSphere Client und am API-Endpunkt sehen. Es ist unabhängig von den ESXi-Hostzertifikaten, den internen Solution-User-Zertifikaten, dem STS-Signaturzertifikat und dem Stamm von VMCA (der eingebauten Zertifizierungsstelle von vCenter). vCenter speichert seine Zertifikate im VMware Endpoint Certificate Store (VECS).

Voraussetzungen

  • Sichern. Erstellen Sie ein dateibasiertes Backup und Snapshots der vCenter Server Appliance im ausgeschalteten Zustand. Dafür wird vCenter kurz heruntergefahren: Die vCenter-Verwaltung ist in dieser Zeit nicht verfügbar, laufende VMs sind nicht betroffen. Im Enhanced Linked Mode (mehrere vCenter in einer SSO-Domäne) erstellen Sie die Snapshots aller vCenter der Domäne gemeinsam, nach Broadcoms Anleitung für koordinierte Offline-Snapshots.

  • vCenter High Availability (vCHA) deaktivieren, falls konfiguriert, und nach dem Austausch wieder einrichten.

  • PNID prüfen. Der Primary Network Identifier ist der Name, mit dem vCenter installiert wurde; das Zertifikat muss dazu passen:

    /usr/lib/vmware-vmafd/bin/vmafd-cli get-pnid --server-name localhost
  • Das richtige Zertifikat besorgen. Der SAN muss die PNID enthalten. Broadcom unterstützt keine Wildcard-Zertifikate für vCenter Server. Bei einer internen Microsoft-CA beantragen Sie es mit einer Vorlage für TLS-Serverzertifikate (Serverauthentifizierung) und laden Zertifikat und CA-Kette Base64-codiert (PEM) herunter - das DER-Format funktioniert in diesen Dialogen nicht.

  • Zugang. Certificate Manager braucht eine SSH-Sitzung als root der Appliance. Halten Sie außerdem Konsolenzugang bereit.

Jedes vCenter im Enhanced Linked Mode hat sein eigenes Machine-SSL-Zertifikat. Tauschen Sie sie nacheinander aus, ein vCenter nach dem anderen.

Einen Weg wählen

vSphere ClientCertificate Manager (CLI)
Geeignet fürRoutineaustauschWenn die Oberfläche nicht verfügbar ist, oder ältere Versionen
Privater SchlüsselBleibt in vCenterWird in eine Datei Ihrer Wahl geschrieben
DienstneustartAb vCenter 8.0 Update 2 nicht nötig; in älteren Versionen automatischStartet die vCenter-Dienste neu

Ab vCenter 8.0 Update 2 empfehlen wir den vSphere Client. Bleiben Sie in jedem Fall von der CSR bis zum Import im selben Weg: Eine im vSphere Client erzeugte CSR muss im vSphere Client abgeschlossen werden, CSR und Schlüssel aus Certificate Manager müssen über Certificate Manager importiert werden.

Austausch im vSphere Client

  1. Öffnen Sie Home > Administration > Certificates > Certificate Management und wechseln Sie zum Reiter Machine SSL.

  2. Klicken Sie auf Generate Certificate Signing Request (CSR) und reichen Sie die CSR bei Ihrer CA ein - der private Schlüssel bleibt in vCenter.

  3. Sobald Sie das signierte Zertifikat haben, klicken Sie im selben Reiter auf Import and Replace Certificate und wählen Replace with external CA certificate where CSR is generated from vCenter Server (private key embedded).

  4. Laden Sie zwei Dateien hoch:

    • Machine SSL Certificate: nur das signierte Zertifikat (zum Beispiel machine_name_ssl.cer).
    • Chain of trusted root certificates: das bzw. die Zwischenzertifikate, gefolgt vom Stammzertifikat, in einer Datei (zum Beispiel chain.cer).

    Wenn Sie die Zertifikate als Text einfügen, entfernen Sie Leerzeichen nach den END CERTIFICATE-Zeilen - sie lassen den Import scheitern.

  5. Ersetzen. Ab vCenter 8.0 Update 2 ist nach erfolgreichem Austausch kein Dienstneustart nötig; in älteren Versionen startet vCenter seine Dienste automatisch neu, und der vSphere Client ist einige Minuten nicht erreichbar.

Wurden CSR und Schlüssel außerhalb von vCenter erzeugt, wählen Sie im selben Dialog die Option für ein externes CA-Zertifikat, die den privaten Schlüssel verlangt, und laden auch den Schlüssel hoch.

Austausch mit Certificate Manager

  1. Certificate Manager als root starten:

    /usr/lib/vmware-vmca/bin/certificate-manager
  2. Im Hauptmenü 1 wählen (Replace the Machine SSL certificate with a Custom CA Certificate) und das Kennwort von [email protected] eingeben.

  3. Im Untermenü 1 wählen, um CSR und Schlüssel für das Machine-SSL-Zertifikat zu erzeugen, und ein Verzeichnis für die Dateien angeben. Ab vCenter 8.0 Update 2 nicht /tmp verwenden - Dateien dort führen zu INVALID_KEY-Fehlern. Nutzen Sie ein Verzeichnis wie /root/certs. Haben Sie INVALID_KEY bereits erhalten, erzeugen Sie CSR und Schlüssel in einem anderen Verzeichnis neu.

  4. vmca_issued_csr.csr bei Ihrer CA einreichen.

  5. Die Zertifikatsdatei für den Import zusammenstellen. Sie muss die vollständige Kette enthalten, Serverzertifikat zuerst, Stammzertifikat zuletzt:

    -----BEGIN CERTIFICATE-----
    (Machine-SSL-Zertifikat)
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    (Zwischenzertifikat, falls vorhanden)
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    (Stammzertifikat)
    -----END CERTIFICATE-----
  6. Certificate Manager erneut starten, im Hauptmenü 1 wählen und im Untermenü den Import der eigenen Zertifikate fortsetzen. Certificate Manager fragt nach drei Dateien: der Zertifikatsdatei aus Schritt 5, dem in Schritt 3 erzeugten privaten Schlüssel und dem signierenden CA-Zertifikat (dem Stammzertifikat). Mit Y bestätigen.

  7. Warten, bis Certificate Manager den Abschluss meldet. Er aktualisiert VECS und startet die vCenter-Dienste neu; vSphere Client und API sind einige Minuten nicht erreichbar. Nicht unterbrechen.

Nur für vCenter 6.7 und älter relevant: Ein externer Platform Services Controller hat ein eigenes Machine-SSL-Zertifikat, dort wiederholen Sie den Vorgang. vCenter 7 und 8 haben keinen externen PSC.

Produktspezifische Hinweise

Der Austausch des Machine-SSL-Zertifikats ersetzt keine ESXi-Hostzertifikate. Ab vCenter 8.0 Update 3h kann vCenter von VMCA ausgestellte Machine-SSL-Zertifikate automatisch erneuern (wenn vpxd.certmgmt.mode auf vmca steht, fünf Tage vor Ablauf). Zertifikate Ihrer eigenen oder einer öffentlichen CA deckt das nicht ab; sie tauschen Sie weiterhin wie hier beschrieben aus.

Broadcoms Skript vCert (KB 385107) deckt viele Zertifikatsvorgänge ab, auch für abgelaufene Zertifikate. Laut Broadcom ist es für den Einsatz unter Anleitung des Broadcom-Supports gedacht - behandeln Sie es als Support-Werkzeug, nicht als Ihren Routineweg.

Neues Zertifikat prüfen

service-control --status --all
/usr/lib/vmware-vmafd/bin/vecs-cli entry list --store MACHINE_SSL_CERT --text
openssl s_client -connect vcenter.example.com:443 -servername vcenter.example.com -showcerts </dev/null

Prüfen Sie, ob alle Dienste laufen und ob das Zertifikat in VECS und im Netzwerk den erwarteten Antragsteller, SAN, Aussteller und das erwartete Ablaufdatum hat. Öffnen Sie dann vSphere Client und API über die PNID, melden Sie sich an, öffnen Sie eine VM-Konsole und prüfen Sie Enhanced-Linked-Mode-Partner und Integrationen wie die Backup-Software.

Rollback

  • vSphere Client: Klappt der Austausch, macht aber Probleme, importieren Sie das vorherige Zertifikat erneut mit der Option, die den privaten Schlüssel verlangt. Das geht nur, wenn Sie das alte Zertifikat samt Schlüssel haben - vCenter hält keine exportierbare Kopie für Sie bereit.
  • Certificate Manager: Hauptmenü-Option 7 (Revert last performed operation by re-publishing old certificates) stellt die vorherigen Zertifikate wieder her. Nutzen Sie sie, bevor Sie einen anderen Zertifikatsvorgang starten.
  • Wenn vCenter sich nicht erholt: die koordinierten Offline-Snapshots aller vCenter der SSO-Domäne zurückspielen. Nur ein verknüpftes vCenter zurückzusetzen, kann die Replikation zwischen ihnen inkonsistent machen.

Häufige Probleme

  • Der SAN enthält die PNID nicht, oder es ist ein Wildcard-Zertifikat.
  • In der Datei für Certificate Manager fehlt das Stammzertifikat, oder die Kette hat die falsche Reihenfolge.
  • Die CSR wurde in einem Weg erzeugt und das Zertifikat im anderen importiert.
  • CSR und Schlüssel lagen ab 8.0 Update 2 in /tmp und führten zu INVALID_KEY.
  • vCHA war während des Austauschs noch aktiv.
  • Ein SSO-Administrator wurde verwendet, wo root der Appliance nötig ist.
  • Das Zertifikat wurde von der CA im DER- statt im Base64-Format heruntergeladen.
  • Eine Integration hat den Fingerabdruck des alten Zertifikats fest hinterlegt und muss angepasst werden.

Zertifikatstausch mit aethercert automatisieren

Das aethercert-Deployment-Ziel für vCenter ersetzt Machine-SSL-Zertifikat und Schlüssel über die vSphere Automation API. ESXi-, VMCA-Stamm- und Solution-User-Zertifikate ersetzt es nicht.

Unter Deployment-Ziele finden Sie die Felder dieser Vorlage, die Voraussetzungen auf dem Host und den Stand der Verifizierung.

Quellen

Auf dieser Seite