HAProxy et SSL
Après avoir découvert que la version 1.5 de HAProxy était packagée sur Debian Wheezy (merci blue ), je me suis empressé d’essayer :-)
J’ai découvert avec ravissement que la configuration SSL par défaut de HAProxy est directement notée A sur ssllabs.com :
Et tout ça avec les réglages par défaut ... Je n’ai pas encore pris le temps de me pencher sur la question de l’amélioration de ce score, qui est déjà tout à fait honorable !
Pour avoir une idée de la simplicité, voilà une configuration générique disposant d’un site en SSL uniquement :
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL).
ssl-default-bind-ciphers kEECDH+aRSA+AES:kRSA+AES :+AES256:RC4-SHA : !kEDH : !LOW : !EXP : !MD5 : !aNULL : !eNULL
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
stats enable
hash-type consistent
mode http
stats hide-version
listen stats localhost:1936
stats realm Haproxy\ Statistics
stats uri /haproxy-status
stats auth root:mysupapassword
frontend web
mode http
option forwardfor except 127.0.0.1
option http-server-close
option httplog
bind my.ip.v4.address:80
redirect scheme https code 301 if ! ssl_fc
default_backend local
frontend ssl
mode http
option forwardfor except 127.0.0.1
option http-server-close
option httplog
bind my.ip.v4.address:443 ssl crt ssl/my.certificate.crt
default_backend local
backend local
server catchall localhost:80
rspidel ^server
rspadd Server :\ MyServer\ (f**k ;\ Unix4lulz/42)
Comme on peut le lire, lorsqu’on reçoit une connexion sur le port 80 (en http), on redirige tout ça sur le port 443 en SSL avec une super connexion chiffrée niveau A
Voir en ligne : http://dooby.fr/index.php?article8/...