17/05/2024

VMware

VMware ESXi : Let’s Encrypt, la solution pour obtenir un certificat SSL gratuit

I. Présentation

Dans ce tutoriel, nous allons apprendre à mettre en place un certificat Let's Encrypt sur un hyperviseur VMware ESXi pour bénéficier d'un certificat SSL valide lorsque l'on va se connecter en HTTPS sur l'interface de gestion du serveur ! Comme l'a relayé Korben sur son site, un développeur a eu l'excellente idée de créer cet outil, assez récemment, et il intègre les fonctionnalités suivantes :

  • Gestion automatique du certificat : demander le certificat et le renouveler automatiquement (une bonne nouvelle quand on sait qu'un certificat Let's Encrypt est valide 90 jours) grâce à une tâche planifiée qui s'exécute une fois par semaine
  • Persistant : le certificat et les fichiers associés persistent sur le système même en cas de mise à niveau de VMware ESXi
  • Configurable pour les utilisateurs les plus exigeants

Le projet est disponible à cette adresse :

Dans le cadre de ce tutoriel pas à pas, je vais utiliser un serveur VMware ESXi 7.0.

II. Let's Encrypt sur VMware ESXi : les prérequis

Ce script prend en charge les versions de VMware ESXi les plus récentes, à savoir VMware ESXi 6.5, ESXi 6.7 et ESXi 7.0, ce qui est une très bonne nouvelle. Compte tenu du fonctionnement de Let's Encrypt, voici les prérequis à respecter pour bénéficier d'un certificat SSL sur son serveur VMware :

  • Votre serveur VMware doit être accessible sur Internet, publiquement
  • Un nom de domaine FQDN est défini dans la configuration du serveur VMware ESXi (donc monserveur.local ne fonctionnera pas)
  • Le nom d'hôte que vous avez spécifié peut être résolu via des enregistrements A (et/ou AAAA) d'un point de vue DNS

Du grand classique pour utiliser Let's Encrypt car ce système implique que le serveur sur lequel on souhaite déployer le certificat soit joignable depuis Internet. Finalement, c'est un cas très fréquent lorsque l'on utilise un serveur dédié dans le Cloud. Certains hébergeurs permettent de limiter les accès, comme c'est le cas d'OVHcloud avec la fonction de pare-feu.

Pour changer le nom FQDN de votre serveur VMware ESXi, connectez-vous en mode Web. Cliquez sur "Mise en réseau" à gauche puis sur "Piles TPC/IP". Ensuite, cliquez sur "Pile TCP/IP par défaut" puis sur le bouton "Modifier les paramètres".

VMware ESXi - Piles TCP IP

Ici, indiquez un nom d'hôte et un nom de domaine, et indiquez aussi votre nom de domaine dans la section "Domaines de recherche". Voici un exemple pour que l'hôte ESXi soit accessible à l'adresse "https://esxi.it-connect.tech". Validez, le tour est joué ! Il n'est pas nécessaire de redémarrer le serveur. Vous pouvez aussi utiliser un autre serveur DNS si vous rencontrez des problèmes avec la résolution de nom par la suite.

Remarque : ce changement de nom peut avoir un impact si vous avez un autre serveur ou une application qui communique avec ce serveur VMware ESXi par le nom.

VMware ESXi - Changer le nom d'hôte

Du côté de la zone DNS, vous devez également créer un enregistrement DNS public faisant correspondre "esxi.it-connect.tech" à l'adresse IP publique sur laquelle est joignable ce serveur.

Si c'est bon pour vous, il va être temps de passer à la phase d'installation du script "w2c-letsencrypt-esxi".

III. Installation de w2c-letsencrypt-esxi

Pour réaliser l'installation, le serveur VMware doit être accessible en SSH afin de passer par la ligne de commande, même si l'on peut aussi procéder par l'interface Web. Si vous avez besoin d'accéder à cette fonction, effectuez un clic droit sur "Hôte" puis sous "Services" cliquez sur "Activer Secure Shell (SSH)". Pensez à désactiver SSH à la fin de l'opération si vous n'avez plus besoin de cet accès.

VMware ESXi - Activer le SSH

Connectez-vous en SSH à votre serveur... Nous allons pouvoir dégainer des commandes pour installer le script via un package VIB. Commencez par lancer cette commande pour télécharger le package à partir de GitHub. Il sera copié en local dans "/tmp/".

wget -O /tmp/w2c-letsencrypt-esxi.vib https://github.com/w2c/letsencrypt-esxi/releases/latest/download/w2c-letsencrypt-esxi.vib

Une fois que c'est fait, démarré l'installation :

esxcli software vib install -v /tmp/w2c-letsencrypt-esxi.vib -f

Vous obtenez ceci :

VMware ESXi - Installation Let's Encrypt

Dès qu'il rentre en action, le script w2c-letsencrypt-esxi configure votre serveur et demande un certificat Let's Encrypt (d'où l'intérêt de configurer le nom FQDN dès le début). En consultant les logs de l'hyperviseur, on peut le voir :

esxcli software vib list | grep w2c

Nous pouvons remarquer plusieurs lignes dont celle-ci : "Success: Obtained and installed a certificate from Let's Encrypt." - Si cela ne fonctionne pas, patientez un peu, votre enregistrement DNS n'est peut-être pas encore diffusé.

VMware ESXi - Log Let's Encrypt

Vous pouvez accéder à l'interface Web de votre serveur VMware ESXi, cliquer sur "Gérer" à gauche, ensuite sur "Sécurité et utilisateurs", puis "Certificats". Ici, vous pouvez voir les informations du certificat Let's Encrypt !

VMware ESXi - Certificat SSL Let's Encrypt

Côté navigateur, un joli cadenas s'affiche désormais dans la barre d'adresse : la connexion HTTPS est sécurisée avec un certificat valide ! 

VMware ESXi - Certificat valide connexion HTTPS

Si vous avez besoin de relancer la génération du certificat ou de modifier des paramètres (période de renouvellement, par exemple), regardez la documentation sur GitHub. Sachez que vous pouvez aussi désinstaller le package à tout moment, si vous changez d'avis. Maintenant, c'est à vous de jouer ! 

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

2 commentaires sur “VMware ESXi : Let’s Encrypt, la solution pour obtenir un certificat SSL gratuit

  • Bonjour,
    dans les prérequis: « Votre serveur VMware doit être accessible sur Internet, publiquement » –> Ca veut dire quels ports ouvert sur une box ?
    Merci.

    Répondre
    • Bonjour Loïc,
      En HTTPS sur le port 443 ça devrait suffire, sinon ajoute le HTTP/80.
      A+
      Florian

      Répondre

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.