Indicação de Nome de Servidor (SNI) do IIS 8.0: Escalabilidade do SSL
por Shaun Eagan
Compatibilidade
Versão | Observações |
---|---|
IIS 8.0 | A Indicação de Nome de Servidor foi introduzida no IIS 8.0. |
IIS 7.5 | Não havia suporte para a Indicação de Nome de Servidor no IIS 7.5. |
IIS 7.0 | Não havia suporte para a Indicação de Nome de Servidor no IIS 7.0. |
Problema
À medida que mais sites de comércio eletrônico entram em operação e mais empresas armazenam e compartilham documentos confidenciais online, a capacidade de hospedar e dimensionar sites seguros é cada vez mais importante. Antes do Windows Server 2012, havia alguns desafios quando se tratava de hospedar sites seguros:
- Escalabilidade de SSL: em um ambiente multilocatário, como uma hospedagem compartilhada, há uma limitação quanto ao número de sites seguros que podem ser hospedados no Windows Server, resultando em uma baixa densidade de sites.
- Escassez de IPv4: como o ponto de extremidade da rede só pode ser identificado com a associação IP:Porta, em que os locatários solicitam o uso da porta SSL padrão, 443, hospedar um site seguro geralmente significa oferecer um endereço IP dedicado por locatário.
Solução
No Windows Server 2012, o IIS dá suporte à Indicação de Nome de Servidor (SNI), que é uma extensão TLS para incluir um domínio virtual como parte da negociação SSL. O que isso significa efetivamente é que o nome do domínio virtual, ou um nome de host, agora pode ser usado para identificar o ponto de extremidade da rede. Além disso, um armazenamento WebHosting altamente escalonável foi criado para complementar a SNI. O resultado é que a densidade de sites seguros é muito maior no Windows Server 2012 e isso é obtido com apenas um endereço IP.
Deve-se observar que, para que esse recurso possa ser usado, os navegadores de seus clientes precisam dar suporte à SNI. A maioria dos navegadores modernos é compatível com SNI; no entanto, o Internet Explorer (de qualquer versão) no Windows XP não dá suporte para SNI.
Instruções passo a passo
Pré-requisitos:
O IIS 8.0 está instalado no Windows Server 2012.
- Tanto o repositório de certificados do WebHosting quanto a SNI fazem parte da instalação padrão do IIS. Não há nenhum recurso específico do IIS que precise ser instalado a partir do Gerenciador do Servidor.
Exemplos de certificados.
\windows\system32\drivers\etc\hosts foi modificado para ser usado no site e no certificado de amostra. Por exemplo, se o nome CN do certificado for TAPTesting, o arquivo hosts deverá conter:
127.0.0.1 TAPTesting
Soluções alternativas para bugs conhecidos:
Há casos extremos em que o Gerenciador do IIS pode remover a vinculação SSL não intencional quando há vinculações SSL tradicionais (IP:Porta) e vinculações SNI (Nome do host:Porta) configuradas no mesmo computador. Para contornar esse problema e/ou confirmar as associações SSL reais, use a ferramenta de linha de comando:
netsh http show sslcert
Importar certificados para o Repositório de Hospedagem Web:
- Abra MMC.
- Em Arquivo, selecione Adicionar/Remover Snap-in:
- Selecione Certificados. Clique em Adicionar:
- Selecione Conta do computador:
- Selecione Computador local e clique em Concluir:
- Clique em OK:
- No painel de navegação, localize o Repositório de Hospedagem Web:
O repositório de Hospedagem Web funciona como o repositório Pessoal, de modo que todas as ferramentas existentes para importar e exportar certificados funcionam da mesma forma. A principal diferença entre o repositório de Hospedagem Web e o armazenamento Pessoal é que o repositório de Hospedagem Web foi projetado para ser dimensionado para um número maior de certificados. - Importe seus certificados de amostra para o repositório de Hospedagem Web.
Crie um site seguro:
Abra o Gerenciador do IIS.
Selecione Sites na janela de navegação à esquerda:
Clique com o botão direito do mouse em Sites e selecione Adicionar Site:
Preencha as informações, como faria para criar qualquer site:
Nome do site: Teste
Caminho físico:
c:\inetpub\wwwroot
Tipo: https
nome do host: TAPTesting
- Essa é uma novidade no Windows Server 8, pois o nome do host pode ser especificado para o protocolo SSL.
- Para evitar erros de incompatibilidade de nome do certificado, certifique-se de que o nome de host especificado aqui corresponda ao nome CN do certificado.
- O valor real dessa configuração varia de acordo com o certificado de amostra que está sendo usado.
Usar a Indicação de Nome de Servidor: selecionado
Certificado SSL: escolha o nome do seu certificado; por exemplo: TAPTesting.
- Observe que os certificados são apresentados nos repositório Pessoal e Hospedagem Web.
Verifique se o site foi criado:
É isso. O site seguro foi criado usando a SNI. A experiência de gerenciamento é muito semelhante à associação SSL tradicional. As únicas diferenças são:
- O nome do host pode ser especificado para o site SSL.
- O certificado é armazenado no repositório de Hospedagem Web para aumentar a escalabilidade.
Testar um site seguro:
Abra um navegador e navegue até https://TAPTesting/
. Observe que, como parte do pré-requisito, seu arquivo de hosts deve ter sido modificado para rotear essa solicitação para o localhost:
Além disso, para ver o novo tipo de associação SSL, insira o seguinte em uma janela de linha de comando com privilégios elevados:
netsh http show sslcert
Observe que a associação SSL é nome do host:porta com o valor TAPTesting:443.
Cenários
Tente implantar os seguintes cenários:
- A SNI foi projetada para ser dimensionada para um ambiente multilocatário. Tente configurar milhares de sites seguros usando a SNI.
- Diferentemente das versões anteriores do Windows Server, os certificados no Windows Server 2012 são carregados na memória sob demanda. Depois de configurar milhares de sites seguros usando a SNI, envie uma solicitação GET para um dos sites seguros e observe o uso da memória. É insignificante. Nas versões anteriores do Windows Server, se centenas de sites seguros estivessem configurados, o envio de apenas uma solicitação GET faria com que o Windows Server carregasse todos certificados, resultando em um alto uso de memória e limitando ainda mais a escalabilidade.
- Configure o Windows Server 2012 com sites seguros tanto com SNI quanto no modo tradicional. Eles foram projetados para coexistir.
Resumo
Você explorou com êxito o recurso SNI (Indicação de Nome de Servidor) no Windows Server 2012.