Suporte ao certificado SSL centralizado do IIS 8.0: escalabilidade e capacidade de gerenciamento do SSL
por Shaun Eagan
Compatibilidade
Versão | Observações |
---|---|
IIS 8.0 | O suporte centralizado ao certificado SSL foi apresentado no IIS 8.0. |
IIS 7.5 | Não havia compatibilidade para o suporte ao certificado SSL centralizado no IIS 7.5. |
IIS 7.0 | Não havia compatibilidade para o suporte ao certificado SSL centralizado no IIS 7.0. |
Problema
À medida que mais sites de comércio eletrônico entram em linha e mais empresas estão armazenando e compartilhando documentos confidenciais online, a capacidade de hospedar e dimensionar sites seguros é cada vez mais importante. Além disso, com a hospedagem na nuvem e a escalabilidade elástica, a capacidade do servidor deve ser adicionada e removida dinamicamente. Antes do Windows Server 2012, há alguns desafios em se tratando de hospedagem de sites seguros:
- Escalabilidade SSL: em um ambiente multilocatário, como uma hospedagem compartilhada, há uma limitação de quantos sites seguros podem ser hospedados no Windows Server, resultando em uma baixa densidade de site.
- Gerenciamento de SSL: os certificados são armazenados localmente para cada Windows Server. Portanto, isso precisa ser gerenciado individualmente em cada Windows Server. Uma tarefa simples, como renovar um certificado, deve ser repetida em cada servidor. Além disso, adicionar um novo Windows Server pode levar horas, se houver milhares de certificados que devem ser importados.
Solução
No Windows Server 2012, o recurso Suporte para certificado SSL centralizado permite que os administradores de servidor armazenem e acessem os certificados de forma centralizada em um compartilhamento de arquivos. Semelhante ao recurso de Configuração compartilhada apresentado no Windows Server 2008, os Windows Servers em um farm de servidores podem ser configurados para carregar os certificados do compartilhamento de arquivos sob demanda.
Com esse recurso, a experiência de gerenciamento de associações SSL fica bem simplificada. Quanto ao SSL, o nome DNS e o nome CN do certificado devem corresponder. O contrato semelhante pode ser estendido também para os nomes de arquivo dos certificados. Por exemplo, www.contoso.com
usaria o certificado com um nome de arquivo www.contoso.com.pfx
. Este contrato permite que o IIS 8.0 tenha apenas uma associação de SSL, independentemente do número de sites seguros que está usando esse recurso. O certificado correspondente é inferido pelo valor de SNI ou nome do host do site solicitado e pela correspondência dele com o nome do arquivo do certificado.
Instruções passo a passo
Pré-requisitos
O IIS 8.0 está instalado no Windows Server 2012 com o recurso de Certificado SSL centralizado. Esse recurso é um componente opcional do IIS e não está instalado como parte da instalação padrão.
Para instalar esse recurso, no Gerenciador do Servidor, selecione o Suporte ao Certificado SSL centralizado no nó de Segurança:
Exemplos de certificados com senha NULL. (Ou você pode ter exemplos de certificados com uma senha global.)
- Os certificados devem ter a convenção de nomenclatura de CN_name.pfx (ou seja,
www.contoso.com.pfx
). - Se o certificado for um certificado curinga, use "_" como o caractere curinga. (ou seja,
_.contoso.com.pfx
). - Se o certificado tiver vários nomes comuns, eles deverão ser nomeados como arquivos individuais. (ou seja,
www.contoso1.com.pfx
,www.contoso2.com.pfx
etc.)
- Os certificados devem ter a convenção de nomenclatura de CN_name.pfx (ou seja,
Dois compartilhamentos de arquivo: um para configuração compartilhada e outro para certificados SSL centralizados.
- O servidor do IIS está usando a configuração compartilhada.
- Os exemplos de certificados foram copiados para o compartilhamento de arquivos para certificados SSL centralizados.
\windows\system32\drivers\etc\hosts foi modificado para ser usado para o site e certificado de exemplo. Por exemplo, se o nome comum do certificado for centralCert0, o arquivo de hosts deverá conter:
127.0.0.1 centralCert0
Soluções alternativas para bugs conhecidos
No momento, não há bugs conhecidos neste recurso.
Configurar o recurso de Suporte ao certificado SSL centralizado
Abra o Gerenciador do IIS.
Selecione o nó do servidor na janela de navegação à esquerda:
Em Gerenciamento, clique duas vezes em Certificados centralizados:
No painel Ações, selecione Editar configurações de recurso:
Insira as seguintes informações:
Habilitar certificados centralizados: selecionado
Caminho físico: Por exemplo:
\\ccdemo\centralcert
- Esse é o caminho UNC para o compartilhamento de arquivos em que os certificados estão localizados.
Nome de usuário: especifique uma conta de usuário que tenha acesso de leitura ao compartilhamento de arquivos.
Senha/Confirmar senha.
Senha da chave privada do certificado:
Isso é opcional. Se os certificados não tiverem senha, deixe isso vazio.
Se os certificados tiverem uma senha global, insira essa senha aqui.
Agora, o recurso de suporte ao certificado SSL centralizado está pronto para ser usado. Observe que o Gerenciador do IIS lê os certificados e preenche as informações mais relevantes sobre os certificados. Essas informações são armazenadas em cache para melhorar o desempenho.
Um recurso de capacidade de gerenciamento em destaque é a capacidade de agrupar os certificados por suas datas de validade:
Confira como é fácil exibir os certificados que:
Expirado
Expiram amanhã
Expiram esta semana
Expiram na próxima semana
Expiram no próximo mês
Mais tarde
Criar um site seguro
Abra o Gerenciador do IIS.
Selecione Sites na janela de navegação à esquerda:
Selecione Adicionar site:
Preencha as informações, da mesma forma que você criaria um site:
Nome do site: centralCert0
Caminho físico:
c:\inetpub\wwwroot
Tipo: https
Nome do host: centralcert0
- Isso é novo no Windows Server 2012, pois o nome do host pode ser especificado para SSL.
- O valor real dessa configuração varia dependendo do certificado de exemplo que está sendo usado.
Exigir a Indicação de Nome de Servidor: não selecionado
- Você também pode optar por selecionar Exigir Indicação de Nome de Servidor, se desejar. O repositório de certificados centralizado não exige que você use a SNI, mas funciona corretamente ao usá-la.
- Observe que, na versão de Developer Preview, o repositório de certificados centralizado exigia o uso da SNI. Essa restrição foi removida a partir da versão Beta.
Usar repositório de certificados centralizado: selecionado
- Observe que não é necessário selecionar um certificado correspondente específico a ser usado.
- Por meio do uso do contrato de nomenclatura, o certificado correspondente é selecionado automaticamente. Neste exemplo, o IIS tenta fazer a leitura de centralcert0.pfx a partir do compartilhamento de arquivo de certificado SSL central.
Verifique se o site foi criado:
É isso. O site seguro foi criado usando o Suporte ao certificado SSL centralizado. A experiência de gerenciamento é muito semelhante à configuração compartilhada e à associação SSL tradicional. As diferenças são:
- Os certificados são armazenados centralmente em um compartilhamento de arquivos.
- O nome do host pode ser especificado para o site SSL.
- A associação SSL não é gerenciada explicitamente de 1 para 1.
Testar um site seguro
Abra um navegador e navegue até https://centralcert0/
. Observe que, como parte do pré-requisito, o arquivo de hosts deve ser modificado para rotear essa solicitação para localhost:
Além disso, para exibir 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 é hostname:port com valor *:443. Além disso, nenhum hash de certificado está associado a essa associação porque o certificado correspondente é carregado sob demanda com base no contrato de nome de arquivo do certificado.
Cenários
Tente implantar os seguintes cenários:
O Suporte ao certificado SSL centralizado foi criado para escalar para um ambiente multilocatário. Tente configurar milhares de sites seguros usando esse recurso.
Com milhares de certificados, execute o comando a seguir em uma janela de linha de comando com privilégios elevados. Observe que, independentemente do número de sites seguros, há simplesmente apenas uma associação:
netsh http show sslcert
Tente adicionar um novo servidor neste farm de servidores. Usando a configuração compartilhada e o recurso de suporte ao certificado SSL centralizado, este é um processo de três etapas agora:
Configure o novo servidor para usar a configuração compartilhada.
Configure o novo servidor para usar o suporte ao certificado SSL centralizado.
Criar a associação de protocolo SSL. Em uma janela de linha de comando com privilégios elevados, insira:
add sslcert hostnameport=*:443 appid={00112233-4455-6677-8899-AABBCCDDEFF}
Ao contrário 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 o recurso de Suporte ao certificado SSL centralizado, envie uma solicitação GET para um dos sites seguros e observe o uso da memória. Isso é insignificante. Nas versões anteriores do Windows Server, se centenas de sites seguros tiverem sido configurados, enviar apenas uma solicitação GET fará com que o Windows Server carregue todos os certificados, resultando em um alto uso de memória e limitando ainda mais a escalabilidade.
Criar sites seguros com suporte ao Certificado SSL, centralizado, tradicional e com SNI. Eles são projetados para coexistir.
Resumo
Você explorou com êxito o recurso Certificado SSL centralizado no Windows Server 2012.