Share via


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:

  1. Adquirir e instalar um certificado
  2. Criar uma associação SSL no IIS
  3. 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.

  1. No HTTP.SYS é necessário usar 0.0.0.0 para especificar todos os endereços IP, no IIS, você usa um asterisco (*).
  2. 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.