Le HAProxy est un proxy inverse largement utilisé, fiable et performant, qui offre des capacités de haute disponibilité et d’équilibrage de charge pour les applications TCP et HTTP. Par défaut, il est compilé avec OpenSSLsoutenant ainsi SSL terminaison, permettant à votre site Web/pile d’applications de chiffrer et de déchiffrer le trafic entre votre « serveur d’entrée Web » ou votre serveur de passerelle d’accès aux applications et les applications clientes.
Ce guide explique comment configurer un CA SSL certificat en HAPorxy. Ce guide suppose que vous avez déjà reçu votre certificat de l’autorité de certification et que vous êtes prêt à l’installer et à le configurer sur un serveur HAProxy.
Les fichiers attendus sont :
- Le certificat lui-même.
- Les certificats intermédiaires appelés aussi bundles ou chaines, et.
- L’autorité de certification racine, si disponible, et.
- La clé privée.
Créer un fichier de certificat SSL au format PEM
Avant de configurer votre Californie certificat en HAProxyvous devez comprendre que HAProxy nécessite un seul .pem
fichier qui doit contenir le contenu de tous les fichiers ci-dessus, concaténés dans l’ordre suivant :
- La clé privée qui se termine par
.key
(peut venir au début ou à la fin du fichier). - Suivi du certificat SSL (se termine généralement par
.crt
). - Ensuite, le CA-Bundle (se termine généralement par
.ca-bundle
), et - L’autorité de certification racine, si disponible.
Pour créer le .pem
fichier, déplacez-vous dans le répertoire contenant vos fichiers de certificat, par exemple ~/Téléchargementspuis exécutez la commande cat comme ceci (remplacez les noms de fichiers en conséquence) :
$ cat example.com.key STAR_example_com/STAR_example_com.crt STAR_example_com/STAR_example_com.ca-bundle > example.com.pem
Configurer le certificat SSL PEM dans HAProxy
Ensuite, téléchargez le fichier que vous venez de créer .pem
fichier de certificat au HAProxy serveur à l’aide de la commande scp comme indiqué (remplacez administrateur système et 192.168.10.24 avec le nom d’utilisateur et l’adresse IP du serveur distant respectivement) :
$ scp example.com.pem [email protected]:/home/sysadmin/
Créez ensuite un répertoire où le certificat .pem
fichier sera stocké en utilisant le mkdir commande et copiez-y le fichier :
$ sudo mkdir -p /etc/ssl/example.com/ $ sudo cp example.com.pem /etc/ssl/example.com/
Ensuite, ouvrez votre HAProxy fichier de configuration et configurez le certificat sous la section écouteur frontal, en utilisant les paramètres ssl et crt : le premier active la terminaison SSL et le second spécifie l’emplacement du fichier de certificat.
frontend http_frontend mode http bind *:80 bind *:443 ssl crt /etc/ssl/example.com/example.com.pem alpn h2,http/1.1 redirect scheme https code 301 if !{ ssl_fc } default_backend http_servers
Certaines versions de SSL/TLS ne sont pas recommandés pour l’instant en raison des vulnérabilités qui y ont été découvertes. Pour limiter la version prise en charge de SSLvous pouvez ajouter le ssl-min-ver paramètre comme celui-ci :
bind *:443 ssl crt /etc/ssl/example.com/example.com.pem alpn h2,http/1.1 ssl-min-ver TLSv1.2
Configurer HAProxy pour rediriger HTTP vers HTTPS
Pour vous assurer que votre site Web n’est accessible que via HTTPSvous devez activer HAProxy pour rediriger tous HTTP le trafic vers HTTPS au cas où un utilisateur tenterait d’y accéder via HTTP (port 80).
Ajoutez la ligne suivante à la configuration ci-dessus :
redirect scheme https code 301 if !{ ssl_fc } OR http-request redirect scheme https unless { ssl_fc }
Votre section frontale devrait maintenant ressembler à celle de cet exemple de configuration :
frontend http_frontend mode http bind *:80 bind *:443 ssl crt /etc/ssl/example.com/example.com.pem alpn h2,http/1.1 ssl-min-ver TLSv1.2 redirect scheme https code 301 if !{ ssl_fc } default_backend http_servers backend http_servers mode http balance roundrobin option httpchk HEAD / http-response set-header X-Frame-Options SAMEORIGIN http-response set-header X-XSS-Protection 1;mode=block http-response set-header X-Content-Type-Options nosniff default-server check maxconn 5000 server http_server1 10.2.1.55:80
Enregistrez le fichier de configuration et fermez-le.
Vérifiez ensuite si sa syntaxe est correcte à l’aide de la commande suivante :
$ sudo haproxy -f /etc/haproxy/haproxy.cfg -c
Si le fichier de configuration est valide, continuez et rechargez le service haproxy pour récupérer les modifications récentes de la configuration, à l’aide de la commande systemctl :
$ sudo systemctl reload haproxy
Enfin, testez l’ensemble de la configuration en accédant à votre site Web à partir d’un navigateur Web et assurez-vous que le certificat se charge correctement et que le navigateur indique que le « La connexion est sécurisée”!
C’est tout! Nous espérons que ce guide vous a aidé à configurer un certificat SSL dans le logiciel d’équilibrage de charge HAProxy. Si vous rencontrez des erreurs, faites-le nous savoir via le formulaire de commentaires ci-dessous. On sera ravis de vous aider.
Si vous appréciez ce que nous faisons ici sur TecMint, vous devriez considérer :
TecMint est le site communautaire à la croissance la plus rapide et le plus fiable pour tout type d’articles, de guides et de livres Linux sur le Web. Des millions de personnes visitent TecMint ! pour rechercher ou parcourir les milliers d’articles publiés accessibles GRATUITEMENT à tous.
Si vous aimez ce que vous lisez, pensez à nous acheter un café (ou 2) en signe d’appréciation.
Nous sommes reconnaissants pour votre soutien sans fin.