Publié le
23 avril 2024
Dans le vaste univers de l'administration de serveurs web, la sécurité s'impose comme une préoccupation majeure. À mesure que la transmission de données entre clients et serveurs devient vitale, en garantir la protection n'est plus négociable. Dans ce contexte, déployer un serveur web sur une distribution Linux implique une tâche fondamentale : assurer la sécurité des données transmises. Au premier rang de cette démarche figure la mise en œuvre du chiffrement Transport Layer Security (TLS). Pour toute personne impliquée dans le développement ou l'hébergement web, maîtriser le chiffrement TLS n'est pas seulement une bonne pratique, mais une compétence fondamentale pour protéger les informations sensibles échangées sur le web.
Voici le deuxième article de notre série : Installer des serveurs web sur différentes distributions Linux, dans lequel nous détaillons le processus d'installation et de configuration d'un reverse proxy / serveur web léger et performant : « NGINX », afin d'activer le chiffrement TLS sur des systèmes d'exploitation répandus tels que Red Hat Enterprise Linux (RHEL), Debian et OpenSUSE.
Ce guide détaillé propose des étapes claires et concrètes pour ajouter une couche de sécurité supplémentaire à vos serveurs web NGINX, garantissant ainsi la confidentialité et l'intégrité des communications.

Mais avant de plonger dans le processus de configuration, il est essentiel de s'assurer que les prérequis suivants sont remplis :
Prérequis :
Mettez à jour les paquets déjà installés. Des privilèges spécifiques seront requis pour certaines opérations tout au long de la procédure :
RHEL
dnf update -y
Note : utilisez yum si dnf n'est pas présent sur la machine.
Ubuntu
apt update –y
Note : utilisez apt-get si apt n'est pas présent sur la machine.
Envie de mettre en pratique ces bonnes pratiques PKI ?
Bénéficiez des conseils de nos experts pour déployer des solutions PKI sécurisées au sein de votre organisation.
Demander de l'aideOpenSUSE
zypper refresh
Installation de NGINX :
Saisissez la commande correspondant à votre système :
RHEL
dnf install -y nginx
Ubuntu
sudo apt install nginx
OpenSUSE
zypper install -y nginx
Note : le service ne devrait pas encore avoir démarré. Vous pouvez le lancer avec la commande systemctl start nginx, après quoi il commencera à écouter sur le port 80 par défaut. Ce n'est pas sécurisé : il est fortement recommandé d'utiliser https (port 443) plutôt que http (port 80).
2. Si un pare-feu est configuré, vous devez autoriser la communication via le port 443. Par exemple, avec la commande suivante pour firewall :
firewall-cmd --permanent --add-port={443/tcp}
3. Enfin, pour recharger le service de pare-feu :
firewall-cmd --reload
Configuration de NGINX pour le chiffrement TLS :
Pour configurer NGINX, vous pouvez soit éditer le fichier /etc/nginx/nginx.conf, soit créer des fichiers .conf dans /etc/nginx/conf.d. Si ces fichiers de configuration sont stockés ailleurs, un lien symbolique peut être créé dans le répertoire conf.d pour pointer vers le fichier de configuration.
Dans le fichier de configuration choisi, vous pouvez créer un serveur virtuel pouvant être configuré finement.
type: embedded-entry-inline id: 3iBFk9ffijsOEHA9jJhXku
Notes :
Le serveur doit écouter sur le port 443 et ssl doit être imposé.
Server_name est le nom d'hôte qui sera utilisé et qui exposera le serveur virtuel.
Le chemin vers le certificat du serveur et sa clé privée doit être renseigné. Grâce aux plateformes Stream et Horizon d'Evertrust, les certificats peuvent être émis et gérés sans accroc.
Les ssl_protocols peuvent être configurés. Il est fortement recommandé de n'activer que TLSv1.2 et TLSv1.3, ou uniquement TLSv1.3, pour une sécurité renforcée.
Le ssl_session_cache permet de mettre en cache les sessions SSL et de les partager entre les workers. Dans la configuration précédente, 10 mégaoctets sont autorisés, ce qui correspond à environ 4 000 sessions.
Le ssl_session_timeout définit la durée pendant laquelle la session peut s'exécuter avant expiration.
Le fichier www.hostname.com.key doit être configuré pour n'être accessible qu'à l'utilisateur root, par sécurité :
chown root:root /path/www.hostname.com.key
chmod 600 /path/www.hostname.com.key
Pour appliquer les modifications à la configuration NGINX, redémarrez le service :
Testez votre configuration NGINX :
nginx -t
puis
systemctl restart nginx
Conclusion :
En conclusion, installer un serveur web sur une distribution Linux est une étape déterminante dans la mise en place d'un environnement d'hébergement web. Le choix dépend de vos besoins et préférences spécifiques : chaque solution offre des fonctionnalités robustes et des optimisations de performance pour servir efficacement du contenu web. En suivant les instructions d'installation adaptées à votre distribution Linux, vous pouvez rapidement mettre en place un serveur web fiable et commencer à héberger vos sites ou applications à destination du monde entier.