PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

GLPI en HTTPS : comment ajouter un certificat SSL ?

mardi 7 novembre 2023 à 12:00

I. Présentation

Dans ce tutoriel, nous allons voir comment ajouter un certificat SSL Let's Encrypt sur un serveur GLPI de manière à avoir une connexion HTTPS sécurisée associée à un certificat valide. Nous verrons également comment configurer Apache pour rendre accessible GLPI en HTTPS plutôt qu'en HTTP.

Pour obtenir un certificat SSL/TLS, il y a plusieurs possibilités :

Pour un serveur GLPI, le certificat Let's Encrypt me semble une bonne option, sauf si vous disposez déjà d'un certificat wildcard pour votre nom de domaine. Dans ce cas, il pourrait s'avérer intéressant de l'utiliser. Sinon, Let's Encrypt représente une solution fiable et gratuite pour obtenir un certificat en quelques minutes. Ce certificat est valide 90 jours, mais nous allons configurer le serveur pour qu'il soit renouvelé automatiquement.

Pour réaliser une installation de GLPI sur Debian 12, vous pouvez suivre ce tutoriel :

Le serveur précédemment installé me sert de base pour ce tutoriel. Actuellement, GLPI est accessible en HTTP depuis Internet, via le nom de domaine support.it-connect.tech.

II. Activer le module SSL sur Apache2

Nous allons effectuer le gros de la configuration directement avec Certbot, l'utilitaire permettant de demander un certificat Let's Encrypt. Toutefois, vous devez être sûr que le module SSL soit bien activé sur votre serveur Apache2.

Exécutez simplement cette commande :

sudo a2enmod ssl

III. Demander un certificat Let's Encrypt pour GLPI

Nous allons installer Certbot sur le serveur GLPI afin de pouvoir demander un certificat Let's Encrypt. Commencez par mettre à jour les paquets puis procédez à l'installation des paquets nécessaires :

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install certbot python3-certbot-apache

Pour utiliser Certbot, il y a plusieurs possibilités, dont le mode certonly pour demander le certificat sans l'installer et un mode pour demander le certificat et l'installer à notre place. Ceci va permettre de configurer le VirtualHost Apache. Nous allons choisir cette seconde option.

Pour demander un certificat pour le domaine "support.it-connect.tech", cela donne :

sudo certbot --apache --agree-tos --redirect --hsts -d support.it-connect.tech --email email@it-connect.tech

Quelques précisions sur les options utilisées :

Vous pouvez ajouter d'autres options... La liste complète est visible dans la documentation de Certbot.

Suite à l'exécution de commande, l'assistant commence par vous demander si votre e-mail peut être utilisé également pour vous contacter au sujet des nouveautés du projet, ou pour vous expliquer comment faire un don. Choisissez entre oui et non en répondant par yes ou no.

Certbot pour demander certificat SSL GLPI

Ensuite, le processus va se poursuivre... En principe, vous avez juste à patienter quelques secondes car nous avons indiqué notre nom de domaine dans les paramètres de la commande. Comme le montre l'image ci-dessous, Certbot indique l'emplacement des fichiers générés, dont le certificat.

Certificat SSL Lets Encrypt GLPI

Voilà, nous venons d'obtenir un certificat et en plus, Apache doit être préconfiguré par Certbot.

IV. Vérifier la configuration d'Apache2 (HTTPS)

Même si Certbot a effectué le travail de configuration à notre place, c'est bien de savoir ce qu'il a fait. Le répertoire "/etc/apache2/sites-available/" de notre serveur contenait déjà le fichier de configuration "support.it-connect.tech.conf". Désormais, il y en a un second qui contient la version "HTTPS" du vHost Apache : "support.it-connect.tech-le-ssl.conf". Certbot a créé ce fichier en reprenant l'autre fichier comme base.

Dans le fichier d'origine, Certbot a ajouté une règle de réécriture pour que les requêtes en HTTP soient redirigées en HTTPS. Il s'agit d'une redirection permanente. Pour le vérifier, éditez le fichier de configuration :

sudo nano /etc/apache2/sites-available/support.it-connect.tech.conf

Vous verrez ces deux lignes :

GLPI Redirection HTTP vers HTTPS

Quant au second fichier, à savoir "support.it-connect.tech-le-ssl.conf", il contient des directives supplémentaires pour préciser les chemins vers le certificat et sa clé privée. Il contient aussi une option pour le HSTS (grâce à l'option --hsts spécifiée dans certbot). Il intègre aussi les options contenues dans le fichier "/etc/letsencrypt/options-ssl-apache.conf", ce qui active le SSL, autorise certains protocoles, etc... Afin d'avoir une configuration adéquate.

SSLCertificateFile /etc/letsencrypt/live/support.it-connect.tech/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/support.it-connect.tech/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
Header always set Strict-Transport-Security "max-age=31536000"
GLPI VirtualHost Apache HTTPS - Exemple

Pour finir, redémarrez Apache2 afin que cette nouvelle configuration soit activée :

sudo systemctl restart apache2

V. GLPI : tester l'accès en HTTPS

Désormais, vous pouvez tester l'accès à votre GLPI en HTTPS (ou HTTP pour tester la redirection). Le certificat est bien valide et dans les détails, nous pouvons voir qu'il a été émis par Let's Encrypt et qu'il est valide 90 jours.

Certificat SSL valide GLPI

Un bon moyen de vérifier la configuration du SSL/TLS sur son serveur Web pour un domaine précis, c'est de lancer une analyse depuis le site SSL Labs. Ceci peut mettre en évidence des problèmes de configuration. Dans notre cas, le score obtenu est très bon :

Tester certificat et config SSL avec SSLLabs pour GLPI

VI. Renouvellement automatique du certificat Let's Encrypt

Pour finir, nous devons configurer le renouvellement automatique du certificat Let's Encrypt. Commençons par exécuter la commande ci-dessous pour s'assurer que Certbot sera capable de renouveler le certificat : l'option --dry-run permet de faire une simulation.

sudo certbot renew --dry-run
GLPI - Simuler renouvellement certificat Lets Encrypt

Tout est bon puisque le message "Congratulations, all simulated renewals succeeded" s'affiche.

Il ne reste plus qu'à éditer la crontab pour créer une tâche planifiée de renouvellement.

sudo crontab -e

Ajoutez la ligne ci-dessous, en adaptant si besoin la fréquence de la tâche. Dans cet exemple, il y aura une tentative effectuée tous les jours à 5h00 du matin. L'option --quiet permet d'effectuer l'action silencieusement.

0 5 * * * /usr/bin/certbot renew --quiet

Ce qui donne :

GLPI - Crontab renouveler certificat SSL

Enregistrez et fermez.

VII. Conclusion

En suivant ce tutoriel, vous devriez être capable d'ajouter un certificat SSL Let's Encrypt à votre serveur Web qui héberge GLPI ! Ainsi, vous disposez d'un certificat valide et d'une connexion sécurisée via HTTPS pour accéder à votre solution d'ITSM.

N'hésitez pas à poster un commentaire si vous avez une question.

The post GLPI en HTTPS : comment ajouter un certificat SSL ? first appeared on IT-Connect.