Environnement
VMware vCSA (vCenter Server Appliance)
Problème
Il arrive tôt ou tard un moment où il faut modifier le certificat sur son vCenter, sur un Windows c’est plutot simple mais maitenant que VMware a décidé de faire du forcing avec l’appliance Linux (j’ai rien contre Linux au contraire) il faut (se) taper de la ligne de commande en console black & white !
Solution
- On travaille dans le folder root :
cd /root
- Création du fichier de configuration du CSR :
vi openssl.conf
[ req ] default_md = sha512 default_bits = 2048 default_keyfile = rui.key distinguished_name = req_distinguished_name encrypt_key = no prompt = no string_mask = nombstr req_extensions = v3_req input_password = password output_password = password [ v3_req ] basicConstraints = CA:false keyUsage = digitalSignature, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth, clientAuth subjectAltName = DNS:vcenter01, IP:10.0.0.1, DNS:vcenter01.lab.local [Modifier] [ req_distinguished_name ] countryName = FR [Modifier] stateOrProvinceName = France [Modifier] localityName = Paris [Modifier] 0.organizationName = Company, spol. s r.o. [Modifier] organizationalUnitName = VMware vCenter Service Certificate commonName = vcenter01.lab.local [Modifier]
- On génère le fichier CSR via le fichier de configuration :
openssl req -new -nodes -out rui_service.csr -keyout rui_service.key -config openssl.conf
- On signe le certificat avec l’autorité Microsoft (MS AD CA) en base64 full chain au format p7b :
rui_service.p7b
- On converti le fichier p7b en crt :
openssl pkcs7 -print_certs -in rui_service.p7b -out rui_service.crt
- On édite le fichier rui_service.crt pour supprimer les espaces avant —–BEGIN CERTIFICATE—– et après —–END CERTIFICATE—– de sorte que les certificat se suivent, celui du vCenter puis l’intermédiaire pour finir par le CA à la fin.
- Si vous avez plusieurs fichiers il suffit de les faire suivre dans l’ordre dans le fichier rui_service.crt.
- On genere le .pfx :
openssl pkcs12 -export -out rui.pfx -in rui_service.crt -inkey rui_service.key -name rui -passout pass:password
- Si tout s’est bien passé, vous avez tout les certificats en votre possession, je vous conseille de faire un Snapshot dès maintenant !
- On remplace tous les certificats via un script, le mot de passe admin du SSO est requis :
vi pki.sh
$SSO_PASSWORD="SSO_Password" $HOSTNAME="vCSA_Hostname" service vmware-stsd stop service vmware-vpxd stop /usr/sbin/vpxd_servicecfg certificate change rui_service.crt rui_service.key service vmware-stsd start service vmware-vpxd start cd /usr/lib/vmware-vpx/inventoryservice/ssl cp /root/rui_service.crt rui.crt cp /root/rui_service.key rui.key cp /root/rui.pfx rui.pfx chmod 400 rui.key rui.pfx chmod 644 rui.crt cd /etc/vmware-sso/register-hooks.d ./02-inventoryservice --mode uninstall --ls-server https://$HOSTNAME:7444/lookupservice/sdk ./02-inventoryservice --mode install --ls-server https://$HOSTNAME:7444/lookupservice/sdk --user "[email protected]" --password $SSO_PASSWORD rm /var/vmware/vpxd/inventoryservice_registered service vmware-inventoryservice stop service vmware-vpxd stop service vmware-inventoryservice start service vmware-vpxd start service vsphere-client restart cd /usr/lib/vmware-logbrowser/conf cp /root/rui_service.crt rui.crt cp /root/rui_service.key rui.key cp /root/rui.pfx rui.pfx cd /etc/vmware-sso/register-hooks.d ./09-vmware-logbrowser --mode uninstall --ls-server https://$HOSTNAME:7444/lookupservice/sdk ./09-vmware-logbrowser --mode install --ls-server https://$HOSTNAME:7444/lookupservice/sdk --user "[email protected]" --password $SSO_PASSWORD
- Autoriser l’exécution du script :
chmod +x pki.sh
- Exécuter le script :
./pki.sh