Certificats approuvés sur iDRAC

Comme avec le vCenter ou les ESXi, j’en avais assez des avertissement concernant le certificat auto-signé à chaque fois que je me connectais à l’iDRAC. J’ai donc décidé de changer son certificat pour un certificat approuvé par une autorité de certification.

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

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é.

 

Sources

Laisser un commentaire