Le SSL et le SNI
Il est aujourd’hui délicat d’utiliser un serveur Apache avec plusieurs hotes virtuels (virtual hosts) en mode sécurisé (https) sur une seule adresse IP. Le SNI permet désormais le support de plusieurs Virtual Host avec des certificats SSL différents.
Le problème des certificats sans SNI se présente dans le cas suivant : lorsque le client demande le certificat au serveur, il ne précise pas de nom de domaine. Le serveur est ainsi incapable de savoir quel certificat envoyer en fonction du domaine. Comme un certificat est rattaché à un domaine bien précis, il était nécessaire de mettre en place un nouveau mécanisme d’échange, les hôtes virtuels étant une fonctionnalité très courante des serveurs http.
Ce mécanisme implique une modification de la phase de négociation des échanges SSL et TLS. La modification est donc en même temps côté client ET côté serveur.
Parmi les navigateurs, ceux qui supportent le SNI sont :
- Mozilla Firefox 2.0 ou supérieur
- Opera 8.0 ou supérieur (le protocal TLS 1.1 doit être activé)
- Internet Explorer 7 (Vista, mais pas XP) ou supérieur
- Google Chrome (Vista, mais pas XP)
- Safari 3.2.1 Mac OS X 10.5.6
Au niveau des serveur, on trouve :
- Apache 2.2.12 ou supérieur en utilisant mod_ssl ou mod_gnutls
- Cherokee avec le support TLS compilé
- Les nouvelles versions de lighttpd 1.4.x and 1.5.x
- Nginx avec le OpenSSL supportant le SNI
- Mozilla NSS
- OpenSSL
- 0.9.8f (sorti le 11/10/2007) - pas compilé par défaut, peut être activé avec l’option ‘–enable-tlsext’
- 0.9.8j (sorti le 07/01/2009) - compilé par défaut
- GNU TLS
Vous souhaitez reproduire cet article ?




