Ajout précision pour SNI vers le backend + documentation strict-sni

This commit is contained in:
Romain Dessort 2017-09-12 11:01:09 -04:00
parent f9a3df1cb9
commit a3c2fce9ee

View file

@ -145,6 +145,8 @@ Pour chaque fichier PEM trouvé, HAProxy cherchera un fichier `.ocsp` du même n
Touts les détails de configuration pour l'attribut `crt` sont consultables sur <http://cbonte.github.io/haproxy-dconv/1.5/configuration.html#5.1-crt>
Dans le cas où HAProxy gère plusieurs domaines dont certains seulement ont un certificat SSL, HAProxy enverra par défaut le certificat défini par la directive `crt`. Si il pointe sur un répertoire, un des certificats du répertoire (ça ne semble pas être le premier/dernier par ordre alphabétique) sera envoyé. Pour éviter ce comportement, on peut rajouter la directive `strict-sni`. Dans ce cas, si HAProxy ne trouve pas le certificat qui correspond au domaine demandé par le client, il retournera l'erreur SSL *SSL_ERROR_BAD_CERT_DOMAIN*.
#### Terminaison SSL
Si HAProxy doit faire la **terminaison SSL et dialoguer en clair** avec le backend, on se contente de transmettre la requête.
@ -167,6 +169,9 @@ backend myback
La vérification du SSL sur le backend est à voir en fonction des besoins de sécurité.
Attention, HAProxy ne supporte pas le SNI pour la communication avec le backend, du moins en version 1.5. L'erreur n'est pas explicite, il se contente d'indiquer une erreur de négociation SSL, cela peut se voir en détail avec wireshark par exemple.
Il faut donc s'assurer que le backend délivre le bon certificat par défaut.
### Exemple avec plusieurs backends et du « sticky session »
~~~
@ -338,4 +343,4 @@ http-request auth realm Texte if !AuthOkayPourMonSite
# echo "show info" | socat stdio unix-connect:/run/haproxy/admin.sock
# echo "show acl" | socat stdio unix-connect:/run/haproxy/admin.sock
# echo "show acl #<ID>" | socat stdio unix-connect:/run/haproxy/admin.sock
~~~
~~~