8 DE IIS: Melhor gerenciamento de certificados

O armazenamento de certificados central do IIS 8 pode simplificar o processo de uso de vários certificados em vários servidores.

Jason Helmick

É refrescante quando há uma solução brilhantemente simples para um problema complexo. Isso é apenas como o armazenamento de certificados central novo (CCS) no IIS 8 pilhas. Com versões anteriores do IIS, você poderia instalar certificados em um Web farm usando o Windows PowerShell Remoting. Este é um processo útil se você está trabalhando com o IIS em servidores mais antigos. Se você for um dos sortudos que podem atualizar para o IIS 8, então você logo verá como o processo de trabalhar com certificados é uma brisa.

Mente a loja

O CCS é baseado em um conceito verdadeiramente simples. Armazenar todos os certificados em um compartilhamento de servidor de arquivos do Windows e, em seguida, ter as ligações de site da Web usar aqueles em vez de certificados instalados localmente. Não só isso reduz o caos da instalação de certificados em vários servidores, reduz bastante o gerenciamento de tempo e esforço para localizar certificados que estão prestes a expirar.

O primeiro passo é criar um compartilhamento em um servidor de arquivo que irá armazenar o seu certificado pfx arquivos. Você pode fazer isso em qualquer servidor de arquivos, independentemente do sistema operacional. Parece preferível fazê-lo em um servidor de arquivos clusterizado para evitar um ponto único de falha. Você não quer perder o acesso a esses certificados.

Se você está trabalhando em um Web farm, você provavelmente já tem um servidor de arquivos clusterizado — ou sistema de arquivos distribuídos (DFS) — disponível para sua configuração compartilhada. Este é um ótimo lugar para criar outro compartilhamento para seus certificados. Criar uma conta de usuário com permissões de leitura para o compartilhamento e você está definido.

CCS funciona usando o nome de host da ligação do Web site para localizar um certificado no armazenamento com o mesmo nome de arquivo mais a extensão. pfx. Por exemplo, se existem dois sites com host nomes www.WebBikez.com e www.MyCompany.com, os certificados devem ser nomeados:

Observação: Você deve garantir que esse curinga certificados (*.MyCompany.com) uso um sublinhado para substituir o caractere curinga (_.MyCompany.com.pfx).

Você pode adicionar certificados para esta partilha qualquer momento que você pode adicionar Web sites. Você não precisa instalar os certificados nos servidores Web. O próximo passo é instalar e configurar o CCS em seus servidores Web do IIS 8 ser capaz de usar esses certificados.

Instalar o CCS

O processo de instalação é simples. Você pode fazer isso com ferramentas de gerenciamento gráfico ou o Windows PowerShell. Aqui está o processo de instalação CCS em um servidor Web local. A última seção descreve como executar essas tarefas em servidores remotos da Web, incluindo Windows Server Core 2012.

Você deve instalar o recurso centralizado suporte de certificado SSL no servidor Web antes de continuar. Você pode usar as ferramentas gráficas do Gerenciador de servidores ou o cmdlet Install-WindowsFeature no Windows PowerShell:

PS> Install-WindowsFeature Web-CertProvider

Quando você instalou com êxito a novidade, um novo ícone aparecerá na seção Gerenciamento do IIS Manager (ver Figura 1).

The CCS icon in the IIS Manager Management section.

Figura 1 ícone do CCS na seção Gerenciamento do IIS Manager .

Clique no ícone para abrir um formulário para configurar CCS (ver Figura 2). Habilitar CCS e, em seguida, fornecer o compartilhamento UNC e o usuário conta com privilégios de leitura para o compartilhamento.

You can graphically configure the central certificate store.

Figura 2 graficamente pode configurar o armazenamento de certificados central.

Observe na parte inferior do formulário, que você pode especificar uma senha de chave privada se você exportou o pfx com um. Normalmente, você poderia exportar os certificados com uma senha, então ele é inserido no exemplo anterior.

Usar essas ferramentas gráficas é simples o suficiente, se você precisa habilitar e configurar o CCS em um único servidor local. Se você deseja automatizar o processo, você também pode usar o Windows PowerShell. Quando você instalar o CCS desta forma, haverá seis novos cmdlets adicionados:

  • Clear-WebCentralCertProvider
  • Disable-WebCentralCertProvider
  • Enable-WebCentralCertProvider
  • Get-WebCentralCertProvider
  • Conjunto-WebCentralCertProvider
  • Conjunto-WebCentralCertProviderCredential

Os cmdlets são bastante auto-explicativo e arquivos de ajuda. Aqui está um exemplo de usando o cmdlet Enable-WebCentralCertProvider para habilitar e configurar o CCS em um servidor Web local:

PS> Enable-WebCentralCertProvider -CertStoreLocation \\serverdc\certstore -UserName company\certuser -Password P@ssw0rd -PrivateKeyPassword P@ssw0rd

Criar ligações do Web site

O último passo no processo é criar, modificar ou adicionar uma nova ligação para o seu site Web que usa o CCS (ver Figura 3). Note que agora há uma nova opção para selecionar "Usar armazenamento de certificados de centralizado."

Binding your Web site to the central certificate store is the final step.

Figura 3 a vinculação de seu Web site para o armazenamento de certificados central é a etapa final.

Aqui está um exemplo de como usar o Windows PowerShell para criar um novo site com a correta ligação de SSL. O truque é o –SslFlags parâmetro sobre o cmdlet New-site. SSLFlags determina onde se encontra o certificado que será usado para a ligação. Para CCS, você quer a opção de dois ou três, dependendo se você estiver usando a indicação de nome de servidor (SNI). Aqui estão as opções:

  • 0 – Regular certificado no armazenamento de certificado do Windows
  • 1-Certificado de SNI
  • 2 – CCS
  • 3 – Certificado SNI no CCS

Aqui é como criar um novo pool de aplicativos e o site da Web usando um certificado do SNI no CCS:

PS C:\> New-WebAppPool -Name WebBikez_pool PS C:\> New-Website -Name WebBikez -HostHeader www.WebBikez.com -PhysicalPath c:\inetpub\wwwroot -ApplicationPool webbikez_Pool -Ssl -port 443 -SslFlags 3 -force

Fazer isso se você só precisa adicionar uma ligação para um site existente:

PS C:\> New-WebBinding -Name "WebBikez" -Protocol https -Port 443 -HostHeader www.WebBikez.com –SslFlags 3

Instalar o CCS em servidores remotos da Web

Você pode executar todos esses comandos usando o Windows PowerShell Remoting. É fácil de ligar e instalar o recurso de CCS para servidores remotos, incluindo Windows Server Core 2012.

Crie uma sessão remota, usando o cmdlet New-PSSession:

PS C:\> $Sessions=New-PSSession -ComputerName server2,server3

Instale o recurso de CCS nos computadores remotos:

PS C:\> Invoke-Command -Session $sessions {Install-WindowsFeature Web-CertProvider}

Aqui é onde fica complicado. O cmdlet Enable-WebCentralCertProvider tem um parâmetro — CertStoreLocation — que aceita um compartilhamento de rede para o local do certificado. O problema é que o cmdlet tenta verificar o local de compartilhamento, antes que ele grava as informações no registro.

No Windows PowerShell Remoting, isso faz com que uma questão multi-hop. Você está conectado a um computador remoto que está tentando se conectar a um computador remoto. Em algum momento, a equipe do IIS provavelmente irá corrigir o cmdlet. Até que eles fazem, aqui está uma maneira de contornar o problema. Você pode apenas adicionar as entradas no registro manualmente.

Para ativar o CCS:

Invoke-Command -Session $sessions {Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\IIS\CentralCertProvider\ -Name Enabled -Value 1}

Para definir o local de compartilhamento dos certificados:

Invoke-Command -Session $sessions {Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\IIS\CentralCertProvider\ -Name CertStoreLocation -Value \\ServerDC\CertStore}

Você não pode definir o nome de usuário e senha diretamente no registro, mas o cmdlet Set-WebCentralCertProvider vai cuidar do resto:

Invoke-Command -Session $sessions {Set-WebCentralCertProvider -Password P@ssw0rd -UserName Company\certuser -PrivateKeyPassword P@ssw0rd}

Neste ponto, você pode adicionar as ligações de Web para seus sites da Web para HTTPS usando o Windows PowerShell Remoting, e pronto. Se você ainda não teve a oportunidade de experimentar o IIS 8, talvez aprender como funciona o CCS vai lhe dar uma razão de negócio bom para dar uma olhada. É apenas um dos novos recursos do IIS 8 que você deve considerar a avançar.

Jason Helmick

Jason Helmick é o diretor de tecnologias do Windows PowerShell para Interface formação técnica, com sede em Phoenix, Arizona Ele é um palestrante, autor e administrador do IIS inadvertida.

Conteúdo relacionado