Snap-in do PowerShell: configurar o SSL com o Snap-in do PowerShell do IIS
pela Equipe do IIS
Para habilitar o SSL, três etapas estão envolvidas:
- Adquirir e instalar um certificado
- Criar uma associação SSL no IIS
- Atribuir o certificado ao IP:Porta da associação do IIS
e opcionalmente:
- Aplicar o SSL em seu site
Adquirir e instalar um certificado
Adquirir certificados é um negócio complicado. Os usuários do site precisam confiar no certificado e é por isso que é necessário obtê-lo de uma autoridade de certificação confiável. No entanto, para fins de teste, é possível criar seu próprio certificado. Para este passo a passo, usaremos o chamado certificado autoassinado. A ferramenta que nos ajuda a criar um certificado autoassinado é chamado MAKECERT e faz parte das Ferramentas do SDK do Visual Studio. O seguinte comando MAKECERT criará um certificado autoassinado e o instalará automaticamente no Repositório de Certificados do Windows “meu”:
makecert -r -pe -n "CN=MyTestServer" -b 07/01/2008 -e 07/01/2010 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12
Examine os certificados no repositório de certificados usando o provedor de certificados:
PS IIS:\> dir cert:\localmachine\my
Directory: Microsoft.PowerShell.Security\Certificate::localmachine\my
Thumbprint Subject
---------- -------
7ABF581E134280162AFFFC81E62011787B3B19B5 CN=MyTestServer
Observação
A impressão digital do certificado será diferente!
Agora, vamos usar o Snap-in do PowerShell do IIS para criar uma associação do SSL e associá-lo ao certificado que acabamos de criar
Criar uma associação do SSL
Estamos adicionando a associação do SSL ao Site Padrão usando um dos cmdlets baseados em tarefa chamado New-WebBinding:
PS IIS:\> New-WebBinding -Name "Default Web Site" -IP "*" -Port 443 -Protocol https
Examine a coleção de associação usando o seguinte comando:
PS IIS:\> Get-WebBinding 'Default Web Site'
protocol bindingInformation
-------- ------------------
http *:80:
https *:443:
Atribuir o certificado ao IP:Porta da associação do IIS
Agora fica um pouco complicado porque as configurações de SSL são armazenadas no repositório de configuração do HTTP.SYS e as convenções de nomenclatura são um pouco diferentes.
- No HTTP.SYS é necessário usar 0.0.0.0 para especificar todos os endereços IP, no IIS, você usa um asterisco (*).
- No IIS, você usa “:” para separar a associação. Como o PowerShell visualiza dois-pontos como um indicador de unidade, um ponto de exclamação é usado em vez disso:
Você poderá CD no diretório IIS:\SslBindings e consultar as associações do SSL existentes. O diretório estará vazio em uma instalação padrão do IIS:
PS IIS:\> cd SslBindings
PS IIS:\SslBindings> dir
Agora você poderá usar o hash de certificado que obtivemos na etapa um e associá-lo a todos os endereços IP (0.0.0.0) e à porta SSL 443:
PS IIS:\SslBindings> get-item cert:\LocalMachine\MY\7ABF581E134280162AFFFC81E62011787B3B19B5 | new-item 0.0.0.0!443
O comando anterior gerou a seguinte associação do SSL:
IP Address Port Store Sites
---------- ---- ----- -----
0.0.0.0 443 My Default Web Site
O SSL está pronto para ir agora e você pode navegar até o site inserindo https://localhost
.
Resumo
É um processo bastante simples configurar o SSL com o PowerShell. É necessário obter um certificado, criar uma associação do SSL no IIS e, em seguida, usar o IP e a porta da associação do IIS para criar uma associação do SSL no HTTP.SYS.