Problème
Parfois, plusieurs sites Web sont situés sur un serveur, ont la même adresse IP, mais chacun d’eux a son propre certificat SSL. Dans de tels cas, un serveur peut ne pas savoir lequel des certificats il doit utiliser lorsqu’un appareil client tente de se connecter à un site Web. La raison en est que la prise de contact SSL/TLS a lieu avant qu’un appareil de client n’envoie un message via HTTP indiquant à quel site Web il tente de se connecter. Cela peut entraîner une « erreur de non-concordance des noms communs ». Cela signifie qu’un client se connecte à la bonne adresse IP, mais le nom commun dans le certificat SSL ne correspond pas au nom de domaine.
Solution
SNI participe à la prise de contact TLS/SSL et aide les clients à voir le bon certificat SSL pour la source à laquelle ils essaient de se connecter. SNI ajoute le nom de domaine lors de la prise de contact TLS afin que le processus TLS atteigne le bon nom de domaine et obtienne le bon certificat SSL, permettant au reste de la prise de contact TLS de se dérouler en mode habituel. En particulier, SNI introduit le nom d’hôte dans le message « Client Hello » qui est la première étape de la prise de contact TLS. Ainsi, SNI permet aux clients de démarrer une connexion sécurisée avec un site Web même si de nombreuses autres ressources ont la même adresse IP.
SNI a été ajouté en tant qu’extension à TLS/SSL en 2003, et initialement il ne faisait pas partie du protocole. Presque tous les navigateurs, systèmes d’exploitation et serveurs Web prennent en charge SNI. Si vous utilisez une très ancienne version de navigateur ou un système d’exploitation mobile comme BlackBerry, il est plus probable que vous ne puissiez pas visiter certains sites Web et votre navigateur enverra un message d’erreur « Votre connexion n’est pas privée » (Your connection is not private).