Problema
Às vezes, vários sites estão localizados em um servidor, têm o mesmo endereço IP, mas cada um deles tem seu próprio certificado SSL. Nesses casos, um servidor pode não saber qual dos certificados deve usar quando um dispositivo cliente tenta se conectar a um site. O motivo é que o handshake SSL/TLS ocorre antes de um dispositivo cliente enviar uma mensagem via HTTP informando a qual site ele tenta se conectar. Isso pode resultar no chamado “erro de incompatibilidade de nome comum”. Isso significa que um cliente se conecta ao endereço IP correto, mas o nome comum no certificado SSL não corresponde ao nome do domínio.
Solução
A SNI participa do handshake do TLS/SSL e ajuda os clientes a ver o certificado SSL correto para a origem à qual tentam se conectar. A SNI adiciona o nome de domínio durante o handshake TLS para que o processo TLS alcance o nome de domínio correto e obtenha o certificado SSL correto, permitindo que o restante do handshake TLS prossiga normalmente. Em particular, a SNI introduz o nome do host na mensagem Client Hello, que é a primeira etapa do handshake TLS. Assim, a SNI permite que os clientes abram uma conexão segura com um site, mesmo que muitos outros recursos tenham o mesmo endereço IP.
A SNI foi adicionada como uma extensão do TLS/SSL em 2003 e, inicialmente, não fazia parte do protocolo. Quase todos os navegadores, sistemas operacionais e servidores da Web são compatíveis com a SNI. Se você usar uma versão muito antiga do navegador ou um sistema operacional móvel como o BlackBerry, provavelmente não conseguirá acessar determinados sites e o navegador enviará uma mensagem de erro “Sua conexão não é privada”.