Replace vCenter Server Appliance (VCSA) Certificate with one from your own CA

Hallo zusammen,

Vor einem Monat habe ich mir die VMware vCenter Server Appliance (VCSA) installiert. Allerdings bringt die ein Selfsigned Zertifikat mit und das bedeutet Sicherheitswarnungen im Browser und in der VMware Remote Console (VMRC),

Es wird also Zeit das Zertifikat mit einem von meiner eigenen Windows Server CA zu ersetzen.

Als erstes habe ich mir das aktuelle Self Signed Zertifikat der VCSA angeschaut. Da werden ein paar spezielle Schlüsselverwendungen (Key Usage) benutzt. Darauf gehe ich dann später noch ein.

Ich habe mich im vSphere GUI mal umgesehen und tatsächlich gibt es da in der Admin Oberfläche einen Punkt zur Verwaltung von Zertifikaten. Dort muss man sich nochmals mit einem VCSA Administrator anmelden.

Es gibt das Machine Zertifikat und auch Root Zertifikate können raufgeladen werden.

Es kann sogar ein Zertifikatssignierungsanforderung (Certificate Signing Request kurz CSR) darin erstellt werden.

Soweit so gut - aber beim ersetzen des Zertifikats braucht man den Private Key, welcher beim erstellen vom CSR erzeugt wurde. Wo der ist? Keinen blassen Schimmer... Vielleicht weiss das ja jemand von euch?

Update: Angeblich soll man den Private Key mit folgendem Befehl abrufen können. Dazu muss man sich jedoch mit SSH auf die Appliance verbinden.

https://communities.vmware.com/thread/622392

/usr/lib/vmware-vmafd/bin/vecs-cli entry getkey --store MACHINE_SSL_CERT --alias __MACHINE_CSR

Certificate Template anpassen

Wie schon gesagt, gibt es im Zertifikat ein paar spezielle Key Usages.

Welche Settings man da machen muss, habe ich in folgendem Youtube Video gefunden Replace your vCenter vSphere 6.5 Certificates using your own CA

Im Prinzip die Webserver Zertifikatsvorlage dublizieren

Einen neuen Namen für die Vorlage vergeben

Key Usage anpassen

Enrollment Permission anpassen

Nun muss das Template noch der CA hinzugefügt werden

VCSA Shell Certificate Manager

Da der Weg über das GUI nicht geklappt hat habe ich weiter gesucht. Nach einer längeren Suche bin ich auf folgenden VMware Artikel gestossen. Dort wird der Certificate Manager erklärt.

How to use vSphere Certificate Manager to Replace SSL Certificates (2097936)

https://kb.vmware.com/s/article/2097936

Leider steht dort nirgends, dass unter dem VCSA Appliance Management (https://vcsa.corp.icewolf.ch:5480/login) die Bash-Shell aktiviert werden muss.

Anscheinend kann das auch über folgenden Befehl aktiviert werden:

Shell.set --enabled True

Nun konnte ich endlich den Certificate Manager aufrufen

shell
/usr/lib/vmware-vmca/bin/certificate-manager

Wieder den CSR erzeugen, diesesmal jedoch in der Shell

In der Shell funktionieren die Befehle cat oder more nicht. Aber man kann die Files mit WinSCP herunterladen.

Damit das funktoniert muss man die default Shell auf bash umstellen

https://blog.vcloud24.ch/zugriff-vcsa-6-7-via-winscp/

chsh -s /bin/bash root

Endlich konnte ich den CSR und das KEY File mit dem private Key herunterladen.

Den CSR habe ich dann mit dem neu erstellten Template verwendet

Und anschliessend das Zertifikat im Base 64 Format heruntergeladen und wieder auf die VMware Appliance kopiert.

Wieder den Certificate Manager gestartet und die Option "Replace Machine SSL" ausgewählt und danach die Option 2 zum ersetzen des Machine Zertifikats.

/usr/lib/vmware-vmca/bin/certificate-manager

Nun müssen nur noch das die Files für das Zertifikat, den private Key und das Root CA eingegeben werden.

Das Zertifikat ist gültig

Nun klappt es ohne Sicherheitswarnung

Grüsse
Andres Bohren