Remplacer les certificats SSL autosignés d’un XtremIO

self-signed-sslNous continuons notre préparation de mise en production de nos bricks XtremIO. Afin d’être conformes à notre politique de sécurité interne, nous essayons, dans la mesure du possible d’intégrer systématiquement des certificats SSL valides vis à vis de notre PKI Institutionnelle à chaque nouvelle application ou équipement. Les interfaces d’administration de nos différents composants de stockage ne dérogent pas à la règle et il a donc fallu s’atteler à intégrer des certificats corrects sur les consoles d’admin des XtremIO.

La chose n’est pas forcément facile, dans le sens ou la documentation fournie est plus que succincte à ce sujet. Donc après une petite demi-heure de tests et tâtonnements divers, nous sommes finalement arrivés à nos fins. Voici donc la procédure pour pouvoir installer un nouveau jeu de certificats à une console XtremIO. Je ne détaillerai pas ici la procédure permettant de générer un certificat depuis votre autorité de certification, ceci dépendant plus que largement de la solution que vous avez choisi au sein de votre organisation (et accessoirement, complètement hors-sujet ;) ).

Tout va se passer en ligne de commande, soit via l’interface “console” de l’outil Java de pilotage de la baie, où, mieux, de mon point de vue, via SSH (pour les copier/coller, c’est beaucoup plus simple). Logguez vous via un putty (ou équivalent) grace au compte “xmsadmin”. Ensuite, lorsque le deuxième login est présenté, rentrez sous “admin”. Vous arrivez sur le prompt de la console CLI XtremIO :

Il vous faut d’abord générer votre CSR pour pouvoir ensuite le soumettre à votre autorité de certification. Pour se faire, lancez la commande “show-server-certificate-signing-request”, pour le récupérer :

Vous noterez ici que la commande vous renvoie le CERTIFICATE REQUEST, mais aussi la clef privée associée (histoire de la sauvegarder au cas où ;) ). Ensuite, soumettez comme d’habitude votre CSR à l’autorité de certification voulue. Demandez (ou convertissez) en retour votre certificat tamponné au format .PEM. Vous devez aussi récupérer l’ensemble de la chaîne de certification.

Une fois tout cela entre vos mains, vous allez devoir fournir la chaîne de certification et le certificat lui même sous la forme d’une chaîne de caractère formatté très précisément. En fait, traditionnellement, les fichiers .PEM sont représentés par des listes de codes hexadécimaux (encodage Base64) encadrés par des balises “—–XXX” et “XXXX—–” et, surtout, sur plusieurs lignes (LF ou CRLF). Pour obtenir la chaîne de caractère compatible avec la console CLI d’XtremIO, il faut remplacer tous les LF par les caractères “\n”. En résumé, vous partez d’un fichier de ce type :

… et vous devez le transformer en une chaîne de ce type :

De mon coté, j’ai utilisé tout simplement une ligne de commande basé sur sed, mais vous pouvez aussi vous servir d’un banal éditeur de text type EditPadPro, Notepad++ etc. … Vous devez réaliser ces opérations à la fois pour le certificat, mais aussi pour la chaine de certification.

Enfin, quand vous avez ces deux chaînes correctement construites, utilisez la commande “modify-server-certificate” :

En retour, vous obtenez la nouvelle chaîne de certification X509 modifiée. Un petit test de connexion via le fqdn de la console XMS suffira à vérifier que tout est ok. Si vous obtenez une erreur du type “*** XMS Completion Code: missing_chain”, c’est sans doute que votre chaine de certification n’est pas complète, ou pas dans l’ordre. Commencez bien par le certificat RACINE, puis le ou les certificats subordonnés, et tout cela combiné dans la chaîne correspondant à l’argument “chain-certificate-string”.

Amusez-vous bien ;)
PS: qui va trouver le petit easter egg de ce billet ?

Laisser un commentaire

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