Changer le certificat de VMWare vCenter Update Manager sous vSphere 4.0

Vous disposez d’une infrastructure vSphere 4.0 incluant un serveur VMWare vCenter pour administrer votre datacenter virtuel. Tout fonctionne bien mais vous êtes agacé par le message qui s’affiche lors de la connexion avec vSphere Client et qui vous rappelle que le certificat du serveur n’est pas digne de confiance. Vous avez alors le choix : cocher la case sur cette boite de dialogue pour ne plus vous le rappeler à l’avenir ou changer le certificat si vous disposez d’un PKI capable de vous fournir le certificat qui sera digne de confiance (signé par une autorité à laquelle vous faites confiance et attribué au nom du serveur vCenter). Cette opération est assez simple à réaliser sur le serveur vCenter lui-même, un coup de google vous apportera rapidement la solution. Les choses se compliquent si vous avez installé le plugin Update Manager car lui aussi dispose d’un certificat et vous avec donc deux messages d’avertissement. Si vous avez réussi à supprimer le premier le second n’est pas si simple à supprimer. Voici donc la marche à suivre pour changer le certificat de VMWare vCenter Update Manager sous vSphere 4.0

Voici la configuration que j’ai utilisé pour réaliser cet article :

  • Le serveur vCenter est installé sur un Windows Server 2003 32 bits avec tous ses paramètres par défaut (chemins, ports, etc…).
  • La base de données de vCenter est celle qui est installée par défaut avec le produit (un SQLServer 2005 Express) en utilisant l’authentification windows.
  • Mon serveur ne fait pas partie d’un domaine active directory et j’utilise le compte de l’administrateur local pour toutes les opérations décrites
  • Pour les besoins de la démonstration le nom de la machine qui héberge vCenter sera vcenter.mondomaine.net, le certificat généré certifie ce nom (pleinement qualifié).

Les fichiers du certificat

Le certificat se compose de trois fichiers que vous avez généré à l’aide de votre outil de gestion de PKI (ou de openssl si vous êtes motivé). Les noms de ces fichiers sur le serveur vCenter sont :

  • rui.crt : le certificat signé par votre autorité de certification (CA). Il contient la clé publique et les informations sur l’identité du serveur à certifier.
  • rui.key : ce fichier contient la clé privée, non cryptée. En toute rigueur, l’accès à ce fichier doit être limité aux seules applications et personnes devant le manipuler, si la sécurité de ce fichier est compromise vous devrez révoquer le certificat dans votre PKI et en générer un nouveau.
  • rui.pfx : ce fichier est une archive sécurisée par un mot de passe contenant le certificat et la clé privée. Le mot de passe par défaut utilisé par vCenter est « testpassword » . Il est possible de le modifier mais il faudra fournir le nouveau mot de passe dans un fichier de configuration du serveur. Nous verrons ça plus loins.

En plus des trois fichiers vous aurez besoin  de connaitre l’empreinte numérique du certificat (fingerprint). C’est une suite de nombres hexadécimaux obtenus par hachage du certificat en utilisant l’algorithme SHA1. Sous windows vous pouvez double cliquer sur le certificat pour afficher ses propriétés. Dans l’onglet « Détails » vous trouverez la propriété « Empreinte numérique ».

Lecture de l'empreinte d'un certificat sous Windows

Lecture de l’empreinte d’un certificat sous Windows

Sous Linux vous pouvez utiliser la commande ligne de commande suivante pour connaitre l’empreinte numérique du certificat :

[linux_prompt]$ openssl x509 -in rui.crt -fingerprint
SHA1 Fingerprint=B4:A6:16:35:EA:44:E9:10:D8:E2:E8:B4:7D:66:8C:34:6A:A0:6D:3B
-----BEGIN CERTIFICATE-----
MIIFSTCCAzGgAwIBAgIBHDANBgkqhkiG9w0BAQQFADCBsTELMAkGA1UEBhMCRlIx
HjAcBgNVBAgTFVRlcnJpdG9pcmUgZGUgQmVsZm9ydDEQMA4GA1UEBxMHQmVsZm9y
...
k0FJRTPBc8bITRD0JA==
-----END CERTIFICATE-----

Création du fichier pfx

A partir du certificat et de la clé privée vous pouvez générer le fichier pfx si vous ne l’avez pas. Utilisez openssl comme indiqué dans la ligne de commande suivante. Par défaut le mot de passe à saisir pour vCenter est testpassword :

[linux_prompt]$ openssl pkcs12 -export -in rui.crt -inkey rui.key -out rui.pfx
Enter Export Password:
Verifying - Enter Export Password:

Installation des fichiers

Pour le serveur vCenter, les trois fichiers sont installés dans le répertoire « C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\SSL » . Faites une copie de sauvegarde avant d’écraser les fichiers d’origine.

Emplacement des fichiers certificat pour vCenter

Emplacement des fichiers certificat pour vCenter

Si vous avez utilisé un autre mot de passe que celui par défaut pour protéger le fichier rui.pfx indiquez-le dans le fichier de configuration qui se trouve à l’emplacement « C:\Program Files\VMware\Infrastructure\tomcat\conf\server.xml« 

...
<!-- Define a SSL HTTP/1.1 Connector on port 8443
 This connector uses the JSSE configuration, when using APR, the
 connector should be using the OpenSSL style configuration
 described in the APR documentation -->

 <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
            maxThreads="150" scheme="https" secure="false"
            clientAuth="false" sslProtocol="TLS"
            keystoreFile="C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\SSL\rui.pfx"
            keystorePass="testpassword" keystoreType="PKCS12"
            ciphers = "SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
            TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA" />
...

Vous devez faire un arrêt/relance du service vCenter pour prendre en compte les modifications et le nouveau certificat. En principe vous n’aurez plus l’avertissement lors de la connexion du client vSphere si le certificat est reconnue comme issu d’une autorité de confiance. En revanche vous aurez encore l’avertissement concernant la connexion du plugin Update Manager.

Prise en compte des certificats par vCenter Update Manager

Le certificat est attaché à un nom de serveur. Si lors de l’installation vous avez spécifié une adresse IP (IPv4 ou IPv6) ou un nom de machine non qualifié vous devez le corriger pour utiliser le nom FQDN (Full Qualified Domain Name) tel qu’il est écrit dans le certificat. Pour le vérifier (et le corriger) éditez le fichier « C:\Program Files\VMware\Infrastructure\Update Manager\extensions.xml » et retrouvez les quatre occurrences de votre nom de serveur :

<?xml version="1.0" encoding="UTF-8"?>
<config>
  <vim>
    <vmodlName>vim.version.version5</vmodlName>
  </vim>
  <extension>
    <name>com.vmware.vcIntegrity</name>
    <version>4.0.0.3971</version>
    <description>VMware vCenter Update Manager Extension</description>
    <certificate>ssl\rui.crt</certificate>
    <keyFile>ssl\rui.key</keyFile>
    <healthUrl>http://vcenter.mondomaine.net:9084/vci/downloads/health.xml</healthUrl>
    <servers>
      <server>
        <url>https://vcenter.mondomaine.net:8084/vci/sdk</url>
        <proxyNameSpace>vci/sdk</proxyNameSpace>
        <description>VMware vCenter Update Manager</description>
        <company>Vmware, Inc.</company>
        <type>SOAP</type>
        <adminEmail>a@vmware.com</adminEmail>
        <adminEmail>b@vmware.com</adminEmail>
      </server>
      <server>
        <url>https://vcenter.mondomaine.net:9087/vum-fileupload/</url>
        <proxyNameSpace>vum-fileupload</proxyNameSpace>
        <description>VMware vCenter Update Manager</description>
        <company>Vmware, Inc.</company>
        <type>HTTP</type>
        <adminEmail>a@vmware.com</adminEmail>
        <adminEmail>b@vmware.com</adminEmail>
      </server>
    </servers>
    <clients>
      <client>
        <version>4.0.0.3971</version>
        <description>VMware vCenter Update Manager Client</description>
        <company>VMware, Inc.</company>
        <type>win32</type>
        <url>http://vcenter.mondomaine.net:9084/vci/downloads/VMware-UMClient.exe</url>
        <proxyNameSpace>vci</proxyNameSpace>
      </client>
    </clients>
  <tasks>
...

Copiez les trois fichiers certificat dans le répertoire « C:\Program Files\VMware\Infrastructure\Update Manager\SSL » en ayant pris soin de sauvegarder les fichiers qui étaient présents avant de les écraser.

Il reste une dernière opération pour la prise en compte de ce certificat. Il faut intervenir en base de donnée et vous aurez besoin d’un client SQLServer. Pour ma part j’ai téléchargé gratuitement le client Microsoft SQL Server Management Studio Express et je l’ai installé sur le serveur vCenter. Il me permet de consulter les tables de la base vCenter et de modifier leur contenu.

Une fois l’outil lancé et installé il vous propose de vous connecter à la base de données.

Microsoft SQL Server Management Studio Express

Microsoft SQL Server Management Studio Express

Vous pouvez l’utiliser pour réaliser une sauvegarde de la base avant de modifier des enregistrements : Dans la liste de gauche déroulez la liste des bases de données puis faites un clic doit sur la base de vCenter (son nom est VIM_VCDB), puis choisissez « Tâches/Sauvegarder… » . Dans la nouvelle fenêtre vous pouvez valider avec les options par défaut, une sauvegarde complète de la base sera réalisée.

Dans la table VPX_EXT modifiez l’enregistrement ayant pour EXT_ID com.vmware.vcIntegrity pour lui associer la signature numérique de votre certificat dans la colonne FINGERPRINT. Les nombre hexadécimaux sont écrits en majuscules et doivent être séparés par le caractère « : » (deux points). Corrigez si besoin le nom de serveur dans la colonne HEALTH_URL.

Pour modifier une table, clic doit sur le nom de la table dans la liste de gauche puis « Ouvrir la table » et enfin vous pouvez cliquer directement dans les cases des enregistrements à droite pour éditer la valeur. N’oubliez pas de valider avec la touche Entrée.

Edition de la table VPX_EXT

Edition de la table VPX_EXT

Vérifier le nom du serveur dans les URL présentes dans les tables VPX_EXT_CLIENT et VPX_EXT_SERVER à chaque fois pour un EXT_ID = com.vmware.vcIntegrity

Faites un arrêt/relance du service VMWare Update Manager pour prendre en compte les modifications.

Voila qui devrait être suffisant pour éliminer le second avertissement lors de la connexion du client vSphere.

Microsoft SQL Server Management Studio Express

Laisser un commentaire

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