VMware vCSA – Remplacer le certificat SSL via Script

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


...BofBienTrès BienTop ! (Soit le premier à voter)
Loading...

Mathieu

Je suis actuellement Ingénieur Système spécialisé dans le design d'environnements cloud virtualisés. Adepte des technologies de VMware, Nutanix, Citrix ou Microsoft je propose à travers ce blog diverses astuces de troubleshooting.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *