Qu'est-ce que le SNI et quand en ai-je besoin?

SNI signifie Server Name Indication (en français Indication du Nom de Serveur). SNI est un protocole additionnel au protocole SSL/TLS qui a été développé comme solution pour l'épuisement des adresses IPv4. En indiquant lors du processus de poignée de main (handshake) avec quel nom d'hôte le client veut se connecter, plusieurs sites web sécurisés HTTPS peuvent être hébergés, chacun avec son propre certificat SSL, sur le même serveur, avec la même adresse IP et le même numéro de port TCP.

Pour pouvoir utiliser le SNI, la bibliothèque SSL/TLS doit prendre en charge le protocole SNI. Depuis 2004, le protocole est supporté par la bibliothèque OpenSSL, mais comme cette dernière est accessible au niveau du logiciel et du système d'exploitation, il existe des navigateurs qui ne prennent pas en charge le SNI sur chaque système d'exploitation. Cela s'applique principalement aux logiciels plus anciens.

Les navigateurs ou combinaisons navigateur/système d'exploitation suivants ne prennent pas en charge le SNI:

  • Internet Explorer (toutes les versions) sous Windows XP
  • Safari sur Windows XP
  • Navigateur BlackBerry
  • Windows Mobile jusqu'à 6,5
  • Navigateur Android sur Android 2.X
  • Le serveur HTTP d'IBM ne prend pas non plus en charge le SNI