vSphere 5 / ESXi5 / View 5 – Alle SSL Zertifikate austauschen

Es gibt mehrere Gründe warum man die selbst-signierten SSL-Zertifikate von VMWare austauschen sollte. Hauptkriterium ist natürlich um Man-in-the-Middle Angriffen vorzubeugen. Außerdem schafft man damit gleichzeitig auch die lästigen Zertifikatsfehler und „roten“ Adresszeilen aus dem weg. Macht also auch optisch was her 😉
Ich beschreibe hier, wie man die folgenden Zertifikate austauschen kann (ich würde die Reihenfolge auch empfehlen):

  1. ESXi Host
  2. vCenter Server (vSphere 5.0)
  3. vSphere Update Manager
  4. View 5 Connection Server

Voraussetzungen:

  1. Zertifizierungsstelle (in meinem Fall die Windows Active Directory CA)
  2. openssl
  3. ESX Server sowie vCenter und View Connection Server müssen zwischendurch neu gestartet werden

 

Schritt 1: Zertifikat erstellen


# Keyfile generieren

openssl genrsa 1024 > rui.key

(Info: Als Root Benutzer ausführen, sonst kann der „random state“ nicht geschrieben werden. Siehe Bild.)
# Zertifikat Request erstellen

openssl req -new -key rui.key > rui.csr


Common Name = FQDN
# Zertifikat Request anzeigen

openssl req -in rui.csr

# Zertifikat erstellen via / https://CASERVER/certsrv
# Zertifikat in Base64 kodierung herunterladen und nochmal via openssl ins x509 Format umwandeln.

openssl x509 -in server.domain.info.cer -out rui-x509.cer

 

Schritt 2: Zertifikat auf ESX Server austauschen

# Zertifikat auf den ESX kopieren
Anschließend per WinSCP auf den ESX-Host verbinden, und die Dateien aktualisieren:

cd /etc/vmware/ssl
mv rui.key rui.key.old
mv rui.crt rui.key.old

Nun die generierte rui-x509.cer als rui.crt sowie das Keyfile hochladen.

# ESX rebooten
Anschließend den ESX neubooten (Empfehlung!) oder ggf. den VPXA-Dienst neustarten:

service vmware-vxpa restart

 

Schritt 3: vCenter Zertifikat austauschen

# Zertifikat erstellen (Schritt 1)
Als erstes wieder ein Zertifikat erstellen. Selber Ablauf wie schon oben oder beim ESX durchgeführt.
Der Pfad für das SSl-Zertifikat des vCenters ist:
Windows 2008: C:\ProgramData\VMware\VMware VirtualCenter\SSL
Windows 2003: C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\SSL\
# Zusätzlich Zertifikat als .pfx speichern
openssl pkcs12 -export -in rui.crt -inkey rui.key -name rui -passout pass:testpassword -out rui.pfx
Wichtig: Das Passwort auf gar keinen Fall ändern, sonst wird das Zertifikat nicht erkannt!
Zum Austausch gibts es nun 2 Wege, Entweder via zurücksetzen der vCenter Datenbank – oder neu per vCenter Api. Ich beschreibe beide Wege.

Weg 1:

# vCenter Server Dienst stoppen.

net stop vpxd

# Passwort der vCenter Server Datenbank zurücksetzen

"C:\Program Files\VMware\Infrastructure\VirtualCenter Server\vpxd.exe" –p

Das Passwort wird zufällig generiert.
# Starte den vCenter Server Dienst.

net start vpxd

Weg 2:

# Webseite aufrufen

https://vcenterservername/mob/?moid=vpxd-securitymanager&vmodl=1 


# Auf reloadSslCertificate klicken

# Auf „Invoke Method“ klicken

Als Bestätigung muss nun folgendes erscheinen:

# Überprüfen ob das Zertifikat korrekt ist.
Dazu die Webseite bzw. FQDN des vCenters aufrufen.

# Einstellung überprüfen:
Der Haken sollte gesetzt sein.

# ESX mit vCenter neu verbinden.
Damit der vCenter das neue Zertifikat des ESX „aktualisiert“ müssen die ESX-Hosts der Reihe nach neu verbunden werden. Dazu aus dem vCenter entfernen und neu verbinden. (FQDN verwenden!)

Schritt 3: Zertifikat des Update Managers austauschen

# Zertifikat erstellen (Schritt 1)
Als erstes wieder ein Zertifikat erstellen. Selber Ablauf wie schon oben oder beim ESX durchgeführt.
Der Pfad für das SSL Zertifikat des Update Managers ist (unter W2K8R2 64-bit):
C:\Program Files (x86)\VMware\Infrastructure\Update Manager\SSL
# Zusätzlich Zertifikat als .pfx speichern
openssl pkcs12 -export -in rui.crt -inkey rui.key -name rui -passout pass:testpassword -out rui.pfx
# Update Manager Dienst stoppen

net stop vmware-ufad-vci


# Zertifikat austauschen
Nun wieder die erstellen Zertifikat-Dateien austauschen. (rui.crt | rui.key | rui.pfx)
# Update Manager Dienst starten

net start vmware-ufad-vci

Schritt 4: Zertifikat des View Connection Server austauschen

Das Austauschen des View-Zertifikates wird in einem VMWare-KB sehr gut beschrieben. Siehe hier: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1008705
Mittels des keytools kann man sich den Request erstellen und dann ganz normal via AD-CA zertifizieren.
 

Debugging: SSL-Fingerprints im vCenter

Gegebenenfalls bekommt man das ein oder andere mal eine Fehlermeldung, das die Fingerprints nicht übereinstimmen. Dies kommt zum Beispiel, wenn man die ESX-Hosts nicht neu verbindet, wenn sich das Zertifikat geändert hat.
Dies kann man debuggen, indem man sich auf den SQL-Server verbindet und sich alle Fingerprints anzeigen lässt:

SELECT id,EXPECTED_SSL_THUMBPRINT,HOST_SSL_THUMBPRINT FROM dbo.VPX_HOST

Der Erwartete Fingerprint muss mit dem realen Fingerprint übereinstimmen:

Ggf. dann den Expected_SSL_Thumbprint mit dem realen aktualisieren:

UPDATE dbo.VPX_HOST SET EXPECTED_SSL_THUMBPRINT = '7B:93:B8:F9:FE:E2:8E:E4:9A:6E:19XXXXXXX:D:CB:21:03:E7’ WHERE id = '5849’

# Fingerprint vom Zertifikat anzeigen

openssl x509 -fingerprint -noout -md5 -in self-signed-certificate.pem

MD5 oder Sha1 – Alternativ einfach Rechtsklick-Eigenschaften und Zertifikat Details anzeigen lassen.