Monit – HTTPS pour l’interface web
Sommaire
I. Présentation :
Comme vous le savez, Monit dispose d’une interface web qui permet de visualiser des informations sur les services et d’effectuer quelques tâches d’administration. Toutefois, on accède à cette interface par l’intermédiaire du protocole HTTP, ce qui n’est pas sécurisé. Afin de sécuriser l’accès, nous allons mettre en place l’utilisation du protocole HTTPS pour l’accès à l’interface web. Ceci engendre une modification de la configuration de Monit par l’intermédiaire du fichier « monitrc » et nous allons devoir générer un certificat SSL qui contiendra également la clé privée. Tout ça dans le but de sécuriser les échanges.
II. Configuration de Monit :
La configuration de Monit doit être légèrement modifiée afin d’indiquer qu’on souhaite activer le SSL, et, il faut également indiquer le chemin vers le certificat à utiliser. Pour cela, il faudra ajouter deux lignes au niveau du paramétrage de l’interface web, comme ceci :
Ajoutez les deux lignes indiquées ci-dessous qui permettent respectivement d’activer le SSL et d’indiquer le chemin vers le fichier de certificat.
ssl enable pemfile /var/certs/monit.pem
La configuration de Monit est désormais effectuée, vous voyez, c’était léger.
III. Création du répertoire certs :
Nous allons stocker notre certificat dans le répertoire « certs » situé dans « /var », or il se peut qu’il n’existe pas. Je vous propose donc de le créer :
mkdir /var/certs
IV. Génération du certificat :
Pour générer le certificat SSL, on utilise la commande « openssl » et nous nommerons le certificat « monit.pem » comme indiqué dans le fichier de configuration « monitrc ». Saisissez la commande suivante :
openssl req –new –x509 –days 365 –nodes –out /var/certs/monit.pem –keyout /var/certs/monit.pem
Remarque : La commande s’exécute sur une seule ligne.
Lorsque vous allez exécuter la commande, de nombreuses informations vont vous êtes demandées afin que les personnes qui arrivent sur l’interface de Monit puisse savoir d’où provient le certificat, et, ainsi, de décider si elles veulent ou non faire confiance à ce certificat et donc accéder ou non à l’interface.
Regardons de plus près cette commande maintenant, afin que vous compreniez mieux ce que je vous demande de saisir.
- « X509 » : C’est une norme de cryptographie qui permet d’établir un format standard pour un certificat.
- « -days 365 » : Permet d’indiquer la durée de validité du certificat qui va être généré. Valeur à indiquer en nombre de jours.
- « -out » : Nom du certificat (et le chemin où on le crée).
- « -keyout » : Nom du certificat auquel on intègre la clé privée pour la sécurisation des échanges. Ceci permet de créer une paire « certificat/clé ».
V. Modification des droits :
Les droits par défaut du certificat ne permettent pas son utilisation, il faut donc modifier les droits pour que le certificat puisse être « exécuté » par le propriétaire. Et, nous en profiterons pour ne donner aucun droit pour le reste afin de limiter l’accès à notre certificat.
chmod 700 /var/certs/monit.pem
Une fois que les modifications des permissions sont effectuées – et pas avant, vous pouvez redémarrer Monit par l’intermédiaire de la commande suivante – en vérifiant la cohérence de la configuration auparavant :
monit –t service monit restart
VI. Visualisation du certificat :
Pour finir, connectez-vous à l’interface web de votre serveur Monit, en précisant « HTTPS » en lieu et place d’HTTP afin de profiter de la connexion sécurisée via SSL.
Votre navigateur vous indiquera un message d’avertissement, ce qui est logique puisqu’il ne connait l’autorité de certification qui a délivrée le certificat. Effectivement, chaque navigateur contient une liste d’autorité de certification auxquelles il fait confiance et pour lesquelles il n’affiche pas de message d’avertissement lors de l’utilisation du protocole HTTPS.
N’hésitez pas à poursuivre et à faire confiance au certificat, puisqu’on connaît sa provenance étant donné que nous l’avons-nous même généré.
Lorsqu’on s’intéresse de plus près aux détails du certificat, on peut y retrouver des informations saisies lorsqu’on l'a généré. Comme le nom de l’organisation et la durée de validité, par exemple.