Tags pour la question fréquent:
Apache NGinx SNI

Cet article a-t-il répondu à votre question?

Score de 3, basé sur 2 votes

Qu'est le Server Name Indication (SNI)?

Dernière mise à jour: 14/06/2018

Server Name Indication est une extension récente du protocole TLS et SSL qui permet à un navigateur d'indiquer en début de session sécurisée avec quel nom de domain il cherche à se connecter. Le grand avantage de SNI, c'est que plusieurs certificats SSL peuvent désormais être liés à une seule adresse IP, et qu'il n'est plus requis de sacrifier une adresse IP par site web SSL.

Le protocole HTTP connait depuis la version 1.1 le concept de name-based virtual hosting, ou bien hébergement virtuel basé sur le nom. Au début de la connection HTTP, le navigateur indique au serveur web avec quel nom de domaine il souhaite connexion, et ce nom de domaine est lu dans les request headers, ou en-têtes de requête.
Lors d'une connexion SSL, il n'est pas possible de lire les en-têtes, car la négotiation du chiffrage requiert déjà que le serveur web présente un certificat, et ce n'est qu'après cela que les données du navigateur sont décryptées et rendues lisibles. Cela amène les sites web hébergés sur une même adresse IP à partager le même certificat SSL, ou d'avoir une adresse IP indépendante, ce qui n'est guère indiqué vu l'épuisement des adresses IPv4.

SNI est une extension du protocole TLS qui ajoute à la négotation le nom de domaine souhaité, ce qui permet au serveur web de sélectionner et de présenter le certificat correct au navigateur.

Comme toute technologie récente, le SNI n'est pas encore soutenu par tous les navigateurs et serveurs web en vogue aujourd'hui. Environ 15% des navigateurs actuels ne connait pas le SNI, et sera présenté le certificat par défaut du site, qui ne correspondra pas au nom de domaine demandé. Maintenant pratiquement tous les navigateurs web modernes offrent SNI. Ce sont que les vieilles versions de navigateurs web ou systèmes d'exploitation qui ont encore des problèmes avec SNI.

Avec un certificat SSL wildcard, un domaine et tous ses sous-domaines peuvent être identifiés. Cette solution sied à tous les navigateurs, mais ne convient pas si les domaines hébergés sur un serveur web ne sont pas apparentés, ce qui est le cas pour l'hébergement web mutualisé.

Un autre alternative consiste à employer un certificat SAN ou multi-domaine, qui lui permet d'ajouter des noms de domaine dissociés à un seul certificat. Toutefois, les Certificate Authorities imposent des limites au maximum de domaines sur un seul certificat. De plus, les certificats SAN sont émis au nom de l'hébergeur, tel que Kinamo, et c'est le données de ce dernier qu'un visiteur verra apparaître dans le certificat au lieu des données du propriétaire du site web, ce qui n'est point souhaitable.