Comment configurer un certificat CA SSL en haproxy

Comment configurer un certificat CA SSL en haproxy

Le Haproxy est un proxy inversé largement utilisé, fiable et haute performance, qui offre des capacités d'équilibrage de haute disponibilité et de charge pour les applications TCP et HTTP. Par défaut, il est compilé avec OpenSSL, Ainsi le soutien SSL terminaison, permettant à votre site Web / pile d'application de crypter et de décrypter le trafic entre votre «serveur de saisie Web» ou les applications du serveur de passerelle d'accès aux applications et des clients.

Ce guide montre comment configurer un CA SSL certificat HAPERXY. Ce guide suppose que vous avez déjà reçu votre certificat de l'AC 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 également appelés faisceaux ou chaînes, et.
  • La racine ca, si disponible, et.
  • La clé privée.

Créer un fichier de certificat SSL à format PEM

Avant de configurer votre Californie certificat Haproxy, Vous devez comprendre cela 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 .clé, (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 .camer), et
  • La racine ca, si disponible.

Pour créer le .pem fichier, emménager dans le répertoire qui a vos fichiers de certificat E.g ~ / Téléchargements, Ensuite, exécutez la commande Cat comme celle-ci (remplacez les noms de fichiers en conséquence):

$ Cat Exemple.com.clé star_example_com / star_example_com.crt star_example_com / star_example_com.CA-Bundle> Exemple.com.pem 

Configurer le certificat PEM SSL en haproxy

Ensuite, téléchargez le juste créé .pem Fichier de certificat au Haproxy serveur utilisant la commande SCP comme indiqué (remplacer sysadmin et 192.168.dix.24 avec le nom d'utilisateur du serveur distant et l'adresse IP respectivement):

$ Exemple SCP.com.pem [e-mail protégé]: / home / sysadmin / 

Puis créez un répertoire où le certificat .pem Le fichier sera stocké en utilisant le mkdir Commandez et copiez le fichier:

$ sudo mkdir -p / etc / ssl / exemple.COM / $ Sudo CP Exemple.com.pem / etc / ssl / exemple.com / 

Ensuite, ouvrez votre Haproxy Fichier de configuration et configurer le certificat dans la section Frontend Écouteur, en utilisant les paramètres SSL et CRT: le premier permet la terminaison SSL et le second spécifie l'emplacement du fichier de certificat.

Frontend HTTP_FRONDEND MODE HTTP BIND *: 80 BIND *: 443 SSL CRT / ETC / SSL / EXEMPLE.com / exemple.com.pem alpn h2, http / 1.1 Schéma de redirection Https Code 301 Si !ssl_fc default_backend http_servers 

Certaines versions de SSL / TLS ne sont pas recommandés pour une utilisation maintenant en raison de vulnérabilités qui ont été découvertes en eux. Pour limiter la version prise en charge de SSL, vous pouvez ajouter le SSL-Min-Ser paramètre comme ceci:

lier *: 443 ssl crt / etc / ssl / exemple.com / exemple.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 Https, Vous devez permettre à Haproxy de rediriger tous Http trafic de Https Dans le cas où un utilisateur essaie d'y accéder sur HTTP (port 80).

Ajoutez la ligne suivante à la configuration ci-dessus:

rediriger le schéma https code 301 si !ssl_fc ou schéma de redirection http-request https sauf si ssl_fc 

Votre section Frontend devrait maintenant ressembler à celle de cet exemple de configuration:

Frontend HTTP_FRONDEND MODE HTTP BIND *: 80 BIND *: 443 SSL CRT / ETC / SSL / EXEMPLE.com / exemple.com.pem alpn h2, http / 1.1 SSL-Min-Ver TLSV1.2 Rediriger le schéma HTTPS Code 301 Si !ssl_fc default_backend http_servers backend http_servers mode http bancin rondrobin option httpchk head / http-réponse set-header x-frame-options même même http-réponse set-header x-xss protection 1; mode = blic -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 en utilisant la commande suivante:

$ sudo haproxy -f / etc / haproxy / haproxy.CFG -C 
Vérifier la configuration de Haproxy

Si le fichier de configuration est valide, allez-y et rechargez le service Haproxy pour récupérer les modifications récentes de la configuration, en utilisant la commande SystemCTL:

$ sudo systemctl recharger haproxy 

Enfin et surtout, testez toute la configuration en accédant à votre site Web à partir d'un navigateur Web et assurez-vous que le certificat se charge bien et que le navigateur indique que le «La connexion est sécurisée"!

Vérifiez le site Web Haproxy

C'est tout! Nous espérons que ce guide vous a aidé à configurer un certificat SSL en logiciel Haproxy Load Balancer. Si vous rencontrez des erreurs, faites-le nous savoir via le formulaire de rétroaction ci-dessous. On sera ravis de vous aider.