Dans un environnement web, sécuriser les communications entre les utilisateurs et le serveur est crucial. L’utilisation du SSL (Secure Socket Layer) aide à protéger les données transmises. Toutefois, le SSL peut aussi réduire les performances en raison de la charge de chiffrement et de déchiffrement. Une solution consiste à utiliser Varnish pour la terminaison SSL avec Nginx en back-end sur Rocky Linux 9. Ce guide détaillé explique comment configurer cette architecture, en rendant le processus compréhensible pour les novices tout en fournissant des détails techniques suffisants pour les utilisateurs avancés.
Prérequis
- Un serveur avec Rocky Linux 9 installé.
- Nginx et Varnish installés sur votre serveur.
- Accès root ou un utilisateur avec des privilèges sudo.
Étape 1 : Installation de Nginx et Varnish
Si Nginx ou Varnish ne sont pas déjà installés, voici comment procéder :
- Installez Nginx :
sudo dnf install nginx -y
sudo systemctl enable --now nginx
- Installez Varnish :
sudo dnf install varnish -y
sudo systemctl enable --now varnish
Étape 2 : Configuration de Nginx pour SSL
Nginx sera configuré pour gérer le SSL, agissant comme le point d’entrée pour les connexions sécurisées.
- Configurez Nginx pour utiliser SSL. Éditez le fichier de configuration de Nginx pour ajouter les directives SSL :
sudo nano /etc/nginx/conf.d/ssl.conf
- Ajoutez la configuration suivante :
server {
listen 443 ssl;
server_name votre_domaine.com;
ssl_certificate /etc/ssl/certs/votre_domaine.com.crt;
ssl_certificate_key /etc/ssl/private/votre_domaine.com.key;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Remplacez votre_domaine.com
, /etc/ssl/certs/votre_domaine.com.crt
, et /etc/ssl/private/votre_domaine.com.key
par vos informations réelles.
Étape 3 : Configuration de Varnish pour la terminaison SSL
Varnish écoutera sur le port 8080 et traitera les requêtes non SSL.
- Modifiez la configuration de Varnish pour écouter sur le port 8080 :
sudo nano /etc/varnish/default.vcl
- Configurez Varnish pour écouter sur le port 8080 :
sudo nano /etc/varnish/varnish.params
- Changez le port d’écoute par défaut :
VARNISH_LISTEN_PORT=8080
- Redémarrez Varnish pour appliquer les changements :
sudo systemctl restart varnish
Étape 4 : Sécurisation de l’installation
Il est crucial de sécuriser cette configuration pour éviter toute exposition non sécurisée des ports.
- Configurez le pare-feu pour autoriser uniquement le trafic SSL :
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
- Assurez-vous que seuls les ports nécessaires sont ouverts. Le port 443 devrait être le seul port ouvert au public.
Pour ceux qui recherchent une solution robuste et performante pour déployer des architectures web complexes comme la terminaison SSL avec Varnish et Nginx, Shape.host offre des services Cloud VPS qui fournissent les ressources et la flexibilité nécessaires. Nos VPS Linux SSD sont optimisés pour offrir des performances maximales, garantissant ainsi une gestion efficace du trafic et une sécurisation optimale de vos données sur Rocky Linux 9.