Après avoir reçu le certificat signé de l'autorité de certification et en avoir fait le certificat racine VMCA, vous pouvez remplacer tous les certificats SSL de machine.

Cette procédure est en grande partie identique à celle mise en œuvre pour le remplacement par un certificat qui utilise VMCA comme autorité de certification. Néanmoins, dans ce cas, VMCA signe tous les certificats avec la chaîne complète.

Chaque machine doit avoir un certificat SSL de machine pour la communication sécurisée avec d'autres services. Lorsque plusieurs instances de vCenter Server sont connectées dans une configuration Enhanced Linked Mode, vous devez exécuter les commandes de génération de certificat SSL de machine sur chaque nœud.

Conditions préalables

Pour chaque certificat SSL de machine, le SubjectAltName doit contenir DNS Name=<Machine FQDN>.

Procédure

  1. Faites une copie de certool.cfg pour toutes les machines ayant besoin d'un nouveau certificat.
    Le fichier certool.cfg se trouve dans le répertoire /usr/lib/vmware-vmca/share/config/.
  2. Modifiez le fichier de configuration personnalisée de chaque machine pour inclure le nom de domaine complet de la machine.
    Exécutez NSLookup sur l'adresse IP de la machine pour voir le nom figurant dans la liste DNS et utilisez ce nom pour le champ Hostname du fichier.
  3. Générez une paire de fichiers de clé publique/privée et un certificat pour chaque machine, en transmettant le fichier de configuration que vous venez de personnaliser.
    Par exemple :
    certool --genkey --privkey=machine1.priv --pubkey=machine1.pub
    certool --gencert --privkey=machine1.priv --cert machine42.crt --Name=Machine42_Cert --config machine1.cfg
  4. Arrêtez tous les services et démarrez ceux qui gèrent la création, la propagation et le stockage des certificats.
    service-control --stop --all
    service-control --start vmafdd
    service-control --start vmdird
    service-control --start vmcad
    
  5. Ajoutez le nouveau certificat à VECS.
    Le nouveau certificat doit figurer dans le magasin de certificats local de toutes les machines pour que celles-ci puissent communiquer sur SSL. Vous devez d'abord supprimer l'entrée existante, puis ajouter la nouvelle entrée.
    vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT  
    vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert machine1.cert
    --key machine1.priv
  6. Redémarrez tous les services.
    service-control --start --all
    

Exemple : Remplacement des certificats SSL de machine (VMCA est l'autorité de certification intermédiaire)

  1. Créez un fichier de configuration pour le certificat SSL et enregistrez-le sous le nom ssl-config.cfg dans le répertoire actuel.
    Country = US
    Name = vmca-<FQDN-example>
    Organization = VMware
    OrgUnit = VMware Engineering
    State = California 
    Locality = Palo Alto
    Hostname = <FQDN>
  2. Générez une paire de clés pour le certificat SSL de machine. Dans un déploiement de plusieurs instances de vCenter Server connectées dans une configuration Enhanced Linked Mode, exécutez cette commande sur chaque nœud vCenter Server.
    /usr/lib/vmware-vmca/bin/certool --genkey --privkey=ssl-key.priv --pubkey=ssl-key.pub
    

    Les fichiers ssl-key.priv et ssl-key.pub sont créés dans le répertoire actuel.

  3. Générez le nouveau certificat SSL de machine. Ce certificat est signé par VMCA. Si vous remplacez le certificat racine VMCA par un certificat personnalisé, VMCA signe tous les certificats avec la chaîne complète.
    /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vmca-ssl.crt --privkey=ssl-key.priv --config=ssl-config.cfg

    Le fichier new-vmca-ssl.crt est créé dans le répertoire actuel.

  4. (Facultatif) Répertoriez le contenu de VECS.
    /usr/lib/vmware-vmafd/bin/vecs-cli store list
    • Exemple de sortie sur vCenter Server :
      output (on vCenter):
      MACHINE_SSL_CERT
      TRUSTED_ROOTS
      TRUSTED_ROOT_CRLS
      machine
      vsphere-webclient
      vpxd
      vpxd-extension
      hvc
      data-encipherment
      APPLMGMT_PASSWORD
      SMS
      wcp
      KMS_ENCRYPTION
  5. Remplacez le certificat SSL de machine dans VECS par le nouveau certificat SSL de machine. Les valeurs --store et --alias doivent correspondre exactement aux noms par défaut.
    • Sur chaque instance de vCenter Server, exécutez les commandes suivantes pour mettre à jour le certificat SSL de machine dans le magasin MACHINE_SSL_CERT. Vous devez mettre à jour le certificat de chaque machine séparément. En effet, chaque machine possède un nom de domaine complet qui lui est propre.
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert new-vmca-ssl.crt --key ssl-key.priv