vCD Zertifikate in 10.3

Wie auch du dein Zertifikat ersetzt bekommst auf dem vCD.

Einige werden es gemerkt haben, seit Cloud Director Version 10.3 hat VMware einiges am Prozess für das Zertifikat optimiert. Das kann einerseits super sein, führt aber auch beim einen oder anderen zu Problemen. Vor allem dann, wenn die Schlüssellänge grösser als 2048 sein muss.

Und genau das ist bei uns der Fall. Ein guter Einstiegspunkt für das Zertifikatstopic bildet diese Seite:

https://docs.vmware.com/en/VMware-Cloud-Director/10.3/VMware-Cloud-Director-Install-Configure-Upgrade-Guide/GUID-6F367859-1D82-452C-924F-ED91E8D4571B.html

Da wir eine eigene CA haben und alle Zertifikate dort durchlaufen müssen, kann man sich sehr gut an folgenden Beitrag halten:

https://docs.vmware.com/en/VMware-Cloud-Director/10.3/VMware-Cloud-Director-Install-Configure-Upgrade-Guide/GUID-DD6CC590-DA49-4700-AD7F-12E9631DDBAF.html

Dem einen oder anderen ist es bereits aufgefallen, VMware hat das CMT um den Parameter generate-certs erweitert. Das Tool ist super, um einen fertigen Key zu erstellen. Das Problem ist jedoch, der Key wird per Standard mit einer Länge von 2048 erstellt. Unsere CA erfordert aber mindestens 3072. Wie erstellt man den nun dieses Keyfile? Denn mit dem CMT geht das so leider nicht.

VMware arbeitet in der Version 10.3 mit den Dateinamen “user.http.*” und “user.consoleproxy.*”. Die Anforderung an den Schlüssel ist, es muss ein verschlüsselter PrivateKey sein und die CA fordert mindestens eine Länge von 3072. Also bauen wir uns den Schlüssel mit dem Algorithmus RSA, Verschlüsselung AES256, mit einer Schlüssellänge von 4092. Sicher ist sicher. Dazu benötigt man ein Passwort, was man später auch zum Einlesen benötigt.

Als Workdirectory arbeite ich direkt auf dem Cloud Director Transfer.

mv $VCLOUD_HOME/data/transfer/certificates $VCLOUD_HOME/data/transfer/certificates_old
mkdir $VCLOUD_HOME/data/transfer/certificates

Der Ordner “certificates” habe ich mir erstellt, damit ich eine bessere Struktur einhalten kann.

Nun muss man schnell reflektieren, habe ich bereits einen validen CSR, oder muss ich mir einen erstellen?

Sollte ein CSR vorhanden sein, dann kann man sich diesen vom alten Ordner in den neuen kopieren.

cp $VCLOUD_HOME/data/transfer/certificates_old/user.http.key $VCLOUD_HOME/data/transfer/certificates
cp $VCLOUD_HOME/data/transfer/certificates_old/user.http.csr $VCLOUD_HOME/data/transfer/certificates

Solte kein CSR vorhanden sein, dann muss man sich einen neuen erstellen wie folgt.

#Key for WebIf
openssl genpkey -algorithm RSA -aes256 -pass pass:IamAPassword -out user.http.key -pkeyopt rsa_keygen_bits:4096

#Key for Console *only for older versions
openssl genpkey -algorithm RSA -aes256 -pass pass:IamAPassword -out user.consoleproxy.key -pkeyopt rsa_keygen_bits:4096

Bereite vorgängig noch deine Parameter vor wie C, ST, L, O, Organizational Unit Name, CN und Co. Nun bist du bereit zum Erstellen der Zertifikatsanfrage:

openssl req -new -key user.http.key -out user.http.csr

#csr for Console *only for older versions
openssl req -new -key user.consoleproxy.key -out user.consoleproxy.csr

Ab jetzt sind die Schritte wieder gleich!

Mit diesem CSR gehst du nun zu deiner CA und lässt dir entsprechend ein Zertifikat generieren. Das Zertifikat lässt du dir dann als Base64 ausgeben im PEM Format.

Damit gehst du nun auf den VMware Cloud Director und schiebst das via SCP oder WinSCP an folgenden Ordner:

cd $VCLOUD_HOME/data/transfer/certificates

Nun müssen die Rechte und der Besitzer angepasst werden:

chown vcloud:vcloud user.http.*
chmod 755 user.http.*

# *only for older versions
chown vcloud:vcloud user.consoleproxy.*
chmod 755 user.consoleproxy.*

Damit haben wir alles bereit, damit der Cloud Director die neuen Zertifikate übernehmen kann:

cd $VCLOUD_HOME/data/transfer/certificates

$VCLOUD_HOME/bin/cell-management-tool certificates -j --cert user.http.pem --key user.http.key --key-password IamAPassword

# *only for older versions
$VCLOUD_HOME/bin/cell-management-tool certificates -p --cert user.consoleproxy.pem --key user.consoleproxy.key --key-password IamAPassword

Die letzteren Befehle müssen auf allen Zellen durchgeführt werden, damit auch alle Zelle das Zertifikat übernehmen. Nun bleibt noch der Neustart vom Cloud Director:

$VCLOUD_HOME/bin/cell-management-tool cell -u administrator -q true
$VCLOUD_HOME/bin/cell-management-tool cell -u administrator -m true
$VCLOUD_HOME/bin/cell-management-tool cell -u administrator -s

Gratuliere, du hast erfolgreich deine Zertifikate beantragt, ausgetauscht und in Betrieb genommen.

Leave a Reply

Your email address will not be published. Required fields are marked *