29 juin

Le SSL et le SNI

Publié le 29/06/2009

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 :

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

Les bibliothèques :

  • 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

Rémy-Christophe Schermesser

Partager cet article :

Vous souhaitez reproduire cet article ?



Warning: touch() [function.touch]: Utime failed: Permission denied in /var/www/toolinux_v3.com/ecrire/inc/genie.php on line 81