Je me suis appuyé sur l’autorité de certification d’Active Directory.
Il y a de nombreux points communs avec les articles vSphere 6.5 – Certificats approuvés 1 – Le vCenter et vSphere 6.5 – Certificats approuvés 2 – L’ESX, notamment concernant l’autorité de certification AD, et je vous invite donc à les lire.
Il existe plusieurs moyens de changer le certificat de l’iDRAC. Il y a notamment une méthode très simple via l’interface web.
Cependant, rien n’étant jamais vraiment simple dans le monde des certificats, cette méthode convient pour IE par exemple, mais pas pour chrome car l’iDRAC ne génère pas le paramètre Subject Alternative Name qui est exigé par Chrome pour juger le certificat fiable.
Il va donc falloir générer le certificat et sa clef en dehors de l’iDRAC, puis les uploader sur celle-ci.
- Autorité de certification
- Génération de la demande de certificat
- Génération du certificat
- Upload du certificat et de sa clef
- Plus d’erreur de certificat
- En cas de problème, retour au certificat autosigné
Autorité de certification
J’ai réutilisé l’autorité de certification installée à l’occasion de la création du certificat du vCenter.
J’ai choisi de créer un certificat de type Web Server, en prenant mon template modifié pour un certificat valable 10 ans.
Génération de la demande de certificat
Afin de générer un certificat contenant tous les paramètres nécessaires, il va falloir passer par un outil tiers.
Personnellement j’ai utilisé OpenSSL, dans sa version 1.1.0f Light pour Windows disponible ici : https://slproweb.com/products/Win32OpenSSL.html.
L’installation est facile, il suffit de suivre l’assistant. Pour la configuration, le plus simple est de modifier le fichier openssl.cfg de OpenSSL, par défaut situé dans C:\OpenSSL-Win32\bin, pour ne garder que le nécessaire, et surtout pour le configurer de façon à n’avoir à répondre à aucune question.
Il faudra par conséquent le modifier pour l’adapter à chaque ESXi avant de générer la demande de certificat lui correspondant. En rouge les éléments à adapter
[ req ]
default_bits = 2048
default_keyfile = rui.key
distinguished_name = req_distinguished_name
encrypt_key = no
prompt = no
string_mask = nombstr
req_extensions = v3_req
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName = DNS:idrac, IP:192.168.3.200, DNS:idrac.home.lab
[ req_distinguished_name ]
countryName = FR
stateOrProvinceName = France
localityName = Villefranche sur Saone
0.organizationName = Druard
organizationalUnitName = Home Lab
commonName = idrac.home.lab
Générer alors la requête de certificat à l’aide de la commande suivante :
openssl req -new -nodes -out idrac.csr -keyout idrac.key -config openssl.cfg |
Le fichier idrac.csr généré est la demande de certificat, et le fichier idrac.key est la clef privée.
Génération du certificat
Récupérer le fichier idrac.csr, le copier sur le serveur autorité de certification, et passer la commande suivante :
certreq -submit -attrib "CertificateTemplate:WebServer" idrac.csr |
Dans cet exemple, c’est le template WebServer par défaut, avec une validité de 2 ans. L’iDRAC exige un certificat de type WebServer, mais rien n’empêche de changer la durée, et personnellement je suis parti sur un certificat de 10 ans (le matériel sera parti à la casse bien avant).
Valider le choix de l’autorité racine. Ici il n’y en a qu’une.
Sauvegarder le certificat sous le nom rui.crt pour ne pas avoir à le renommer plus tard.
Le certificat est généré.
Upload du certificat et de sa clef
L’interface web permettrait d’uploader le certificat, mais pas la clef. Il faut passer par l’utilitaire « Dell OpenManage DRAC Tools, includes Racadm », actuellement en version 8.5, téléchargeable ici en 32 bits ou ici en 64 bits.
L’installation est simple, il suffit de suivre l’assistant.
Ouvrir une invite de commande en mode administrateur.
Dans les commandes qui suivent, le paramètre « -i » signifie que les compte et mot de passe seront saisis de façon interactive.
Il est cependant possible de saisir ceux-ci dans la commande, pour scripter par exemple. Remplacer « -i » par « -u [user] -p [password] ».
Uploader la clef.
racadm -r idrac.home.lab -i sslkeyupload -t 1 -f idrac.key |
Uploader le certificat.
racadm -r idrac.home.lab -i sslcertupload -t 1 -f idrac.cer |
Réinitialiser l’iDRAC pour prendre en compte le certificat.
racadm -r idrac.home.lab -i racreset |
L’iDRAC met bien 5 minutes pour être de nouveau joignable, c’est normal.
Plus d’erreur de certificat
Avant :
Après :
En cas de problème, retour au certificat autosigné
Si quelque-chose s’est mal passé, on peut se retrouver avec un certificat invalide et rejeté par les navigateurs. Plus moyen de se connecter à l’idrac.
Pas de panique, on peut passer en SSH (avec putty par exemple) pour revenir sur un certificat autosigné.
Une fois connecté en SSH, passer une première commande pour réinitialiser le certificat
racadm sslresetcfg |
Ensuite passer une commander pour réinitialiser l’iDRAC afin de prendre en compte le certificat
racadm racreset |
Après quelques minutes, l’iDRAC est de nouveau accessible avec un certificat auto-signé.