VMware ESXi : Let’s Encrypt, la solution pour obtenir un certificat SSL gratuit
Sommaire
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".
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.
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.
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 :
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é.
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 !
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 !
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 !
Bonjour,
dans les prérequis: « Votre serveur VMware doit être accessible sur Internet, publiquement » –> Ca veut dire quels ports ouvert sur une box ?
Merci.
Bonjour Loïc,
En HTTPS sur le port 443 ça devrait suffire, sinon ajoute le HTTP/80.
A+
Florian