Le SSL et le SNI

Posté le 29 juin 2009 ::   Logiciels


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

(Vous souhaitez reproduire cet article ?)


  • Digg
  • Del.icio.us
  • Facebook
  • Google
  • Technorati
  • Live
  • MySpace
  • Scoopeo
  • Wikio
  • Furl
  • Blogmarks
  • Reddit
  • Mister wong
  • Viadeo