Gestion de certificats pour HAProxy
Génération de clé privée et de CSR
Pour générer une clé privée et un CSR, vous pouvez soit utiliser notre utilitaire Keybot, vous permettant de générer directement un fichier pem, soit un autre outil comme Openssl.Installation et configuration SSL/TLS
Cette configuration n'est valide que pour les version 1.5 et supérieures d'Haproxy. En effet, il s'agit de la première version incluant un support natif des certificats TLS. Attention, la plupart des fonctionnalité évoquées dans ce document nécessitent que Haproxy ait été configuré avec le support openssl.Pour installer un certificat sous Haproxy, il faut utiliser un fichier pem, contenant votre clé privée, votre certificat au format X509 ainsi que sa chaine de certification. Pour cela, il peut être nécessaire de concaténer vos différents fichiers par exemple :
#Dans le cas d'un certificat et d'une chaine séparés : cat exemple.com.key exemple.com.crt exemple.com-chaine.txt > haproxy.pem
#Dans le cas d'un certificat contenant déjà la chaine de certificat: cat exemple.com.key exemple.com-avec-chaine.pem > haproxy.pemPlacez ensuite votre fichier dans votre dossier haproxy (normalement /etc/haproxy/).
Pour configurer votre instance d'Haproxy d'une manière optimale, garantissant le maximum de sécurité et de compatibilité, nous vous recommandons d'ajouter les paramètres suivants.
global ssl-default-bind-options no-sslv3 no-tls-tickets force-tlsv12 ssl-default-bind-ciphers !EDH:!RC4:!ADH:!DSS:HIGH:+AES128:+AES256-SHA256:+AES128-SHA256:+SHA:!3DES:!aNULL:!eNULL tune.ssl.default-dh-param 2048 frontend http-in mode http option httplog option forwardfor option http-server-close option httpclose bind VOTREIP:80 redirect scheme https code 301 if !{ ssl_fc } frontend https-in option httplog option forwardfor option http-server-close option httpclose rspadd Strict-Transport-Security:\ max-age=31536000;\ includeSubDomains rspadd X-Frame-Option:\ DENY bind VOTREIP:443 ssl crt /etc/haproxy/haproxy.pem ciphers !EDH:!RC4:!ADH:!DSS:HIGH:+AES128:+AES256-SHA256:+AES128-SHA256:+SHA:!3DES:!aNULL:!eNULL force-tlsv12 no-sslv3Les sections suivantes de ce document traiteront des différents points de sécurité recommandés dans cette section ainsi que de recommandations additionnelles de sécurité.
Mettre en place un groupe Diffie-Hellman fort
Pour lutter contre les attaques visant les échanges de clé DHE (par exemple Logjam), il convient de fixer une taille maximale de groupe suffisant à l'aide du paramètre tune.ssl.default-dh-param. Nous recommandons une taille minimale de 2048. La valeur par défaut de ce paramètre est de 1024, valeur bien trop basse. Si votre fichier de certificat .pem contient des paramètres DH, alors cette valeur sera ignorée. Il faut ajouter la ligne suivante à la section globale de votre fichier de configuration :tune.ssl.default-dh-param 2048
Utiliser HSTS pour forcer le chiffrement des données
Pour protéger au mieux vos utilisateurs il convient d'activer le chiffremment HTTPS dans la plupart des cas, c'est pourquoi la norme HTTP Strict Transport Security a été crée. Pour le configurer ajoutez les lignes suivantes aux sections correspondantes de votre configuration conformément à l'exemple suivant :frontend http-in redirect scheme https code 301 if !{ ssl_fc } frontend https-in rspadd Strict-Transport-Security:\ max-age=31536000;\ includeSubDomains
Voir aussi
Dernière modification le 06/09/2017 08:22:19 --- [Chercher]