HAProxy, un équilibreur de charge TCP/HTTP très performant, prend en charge la terminaison SSL, ce qui signifie qu’il peut gérer les tâches de cryptage et de décryptage SSL, réduisant ainsi la charge sur les serveurs dorsaux.
Cet article vous montrera comment configurer un certificat SSL dans HAProxy, notamment en générant un code CSR (Certificate Signing Request), en obtenant un certificat SSL commercial, en combinant le certificat avec la clé privée et en configurant HAProxy pour qu’il l’utilise. C’est parti !
Table des matières
- Générer un code CSR pour votre certificat SSL
- Obtenir un certificat SSL commercial pour HAProxy
- Fusionner le certificat et la clé privée
- Configurer le certificat SSL PEM dans HAProxy
Générer un code CSR pour votre certificat SSL
Avant que l’autorité de certification puisse émettre le certificat SSL, elle a besoin du code CSR que vous lui fournissez pour valider vos coordonnées. Le CSR est un petit bloc de texte codé contenant des informations pertinentes sur votre site web et votre entreprise. Vous devez le générer et le soumettre lors de l’inscription au SSL.
Voici comment procéder :
- Ouvrez un terminal: Accédez à l’interface de ligne de commande de votre serveur.
- Exécutez la commande OpenSSL: Utilisez la commande OpenSSL suivante pour générer une CSR et une clé privée.
Remplacez mydomain par votre nom de domaine réel.
openssl req -new -newkey rsa:2048 -nodes -keyout mydomain.key -out mydomain.csr - Saisissez les informations requises: Vous serez invité à saisir des informations telles que :
- Nom du pays (code à 2 lettres, par exemple US)
- Nom de l’État ou de la province (par exemple, Californie)
- Nom de la localité (par exemple, San Jose)
- Nom de l’organisation (par exemple, GPI Holding)
- Nom de l’unité organisationnelle (par exemple, IT)
- Nom commun (par exemple, votredomaine.com)
- Adresse électronique
- Sauvegardez le CSR et la clé privée: La commande génère deux fichiers : mydomain.csr (la CSR) et mydomain.key (la clé privée). Conservez la clé privée en lieu sûr, car vous en aurez besoin ultérieurement.
Obtenir un certificat SSL commercial pour HAProxy
Les certificats SSL commerciaux sont reconnus par tous les navigateurs et systèmes opérationnels. Par conséquent, vos sites web ou applications ne seront pas confrontés à des erreurs de connexion SSL gênantes. Dans un environnement de production, ces certificats sont indispensables. Si vous utilisez HAProxy à des fins de test, vous pouvez générer un certificat auto-signé, mais dans cet article, nous nous concentrerons sur la configuration SSL de HAProxy pour les environnements réels.
Pour obtenir un certificat SSL commercial, suivez les étapes suivantes :
- Choisissez une autorité de certification (AC): Choisissez une autorité de certification réputée comme DigiCert, Comodo ou GeoTrust.
- Sélectionnez le type de certificat: Choisissez le type de certificat SSL qui correspond à vos besoins, par exemple un certificat pour un seul domaine, un certificat générique ou un certificat pour plusieurs domaines (SAN).
- Soumettez la CSR: Fournissez la RSC à l’autorité de certification afin qu’elle puisse émettre un certificat correspondant à la clé privée de votre serveur.
- Achetez le certificat : Achetez votre certificat SSL auprès d’un revendeur SSL fiable comme SSL Dragon pour obtenir le meilleur prix et le meilleur support client.
- Processus de validation: Selon le type de certificat, vous serez soumis à une validation de domaine, à une validation d’organisation ou à un processus de validation étendu.
- Recevez le certificat: Après validation, l’autorité de certification émettra les fichiers SSL archivés dans un dossier ZIP.
Fusionner le certificat et la clé privée
Une fois que vous avez reçu votre certificat SSL de l’autorité de certification, vous devez le combiner avec votre clé privée pour créer un fichier unique que HAProxy peut utiliser.
- Préparez les fichiers: Assurez-vous que vous disposez des fichiers suivants :
- Le certificat SSL de votre domaine (par exemple, mydomain.crt)
- La clé privée générée précédemment (mydomain.key)
- Tous les certificats intermédiaires fournis par l’autorité de certification (par exemple, intermediate.crt). En général, l’autorité de certification envoie les certificats intermédiaires dans un fichier CA Bundle.
- Combinez les fichiers: Cette commande regroupe le certificat, le certificat intermédiaire et la clé privée dans un seul fichier PEM.
cat mydomain.crt intermediate.crt mydomain.key > /etc/haproxy/mydomain.pem
Configurer le certificat SSL PEM dans HAProxy
Maintenant que vous disposez du fichier PEM, vous pouvez configurer HAProxy pour qu’il utilise le certificat SSL.
Étape 1 : Téléchargez le certificat PEM sur le serveur HAProxy :
Utilisez la commande scp pour télécharger le fichier de certificat PEM sur le serveur HAProxy (remplacez sysadmin et haproxy_server_ip par le nom d’utilisateur et l’adresse IP du serveur distant, respectivement) :
scp mydomain.pem sysadmin@haproxy_server_ip:/home/sysadmin/
Étape 2 : Créer un répertoire pour le certificat
Créez un répertoire dans lequel le fichier PEM du certificat sera stocké :
sudo mkdir -p /etc/ssl/mydomain/
sudo cp mydomain.pem /etc/ssl/mydomain/
Étape 3 : Modifier le fichier de configuration de HAProxy
Ouvrez le fichier de configuration de HAProxy (situé par défaut dans /etc/haproxy/haproxy.cfg) dans un éditeur de texte tel que le Bloc-notes.
Étape 4 : Configuration de la section Frontend
Modifiez la section frontend pour activer la terminaison SSL et rediriger le trafic HTTP vers HTTPS :
frontend http_frontend
mode http
bind *:80
bind *:443 ssl crt /etc/ssl/mydomain/mydomain.pem alpn h2,http/1.1
redirect scheme https code 301 if !{ ssl_fc }
default_backend http_servers
Étape 5 : Ajouter les paramètres SSL/TLS
Pour garantir l’utilisation de versions SSL/TLS modernes et sûres, ajoutez le paramètre ssl-min-ver :
bind *:443 ssl crt /etc/ssl/mydomain/mydomain.pem alpn h2,http/1.1 ssl-min-ver TLSv1.2
Cette directive prend en charge les protocoles HTTP/2 et HTTP/1.1 et impose une version TLS minimale de 1.2 pour les connexions sécurisées.
Étape 6 : Configuration de la section Backend
Assurez-vous que vos serveurs dorsaux sont correctement définis.
backend http_servers
mode http
balance roundrobin
server server1 :80 check
server server2 :80 check
Étape 7 : Redémarrer HAProxy
Appliquez les modifications en redémarrant le service HAProxy :
sudo systemctl restart haproxy
Étape 8 : Testez votre configuration SSL
Pour tester votre configuration SSL HAProxy, utilisez SSL Labs et entrez votre nom de domaine. L’outil vous fournira un rapport complet sur votre configuration SSL/TLS, y compris les détails du certificat et les problèmes éventuels.
Conclusion
En résumé, apprendre à configurer un certificat SSL dans HAProxy est essentiel pour sécuriser vos applications web et garantir une communication fiable entre les clients et les serveurs. En définissant correctement votre configuration SSL dans HAProxy, vous pouvez protéger les données sensibles et améliorer la sécurité globale. Le respect de ces directives permet de mettre en œuvre un cryptage solide et de garantir que votre site web fonctionne en toute sécurité via HTTPS, offrant ainsi une expérience plus sûre à vos utilisateurs.
Economisez 10% sur les certificats SSL en commandant aujourd’hui!
Émission rapide, cryptage puissant, confiance de 99,99 % du navigateur, assistance dédiée et garantie de remboursement de 25 jours. Code de coupon: SAVE10