Configurar o Serviço Web de Registro de Certificado para renovação baseada em chave de certificados em uma porta personalizada

Autores: Jitesh Thakur, Meera Mohideen, Assistentes Técnicos com o Grupo do Windows. Ankit Tyagi, engenheiro de suporte com o Grupo do Windows

Resumo

Este artigo fornece instruções passo a passo para implementar o CEP (Serviço Web de Política de Registro de Certificado) e o CES (Serviço Web de Registro de Certificado) em uma porta personalizada diferente da 443 para renovação baseada em chave de certificado a fim de aproveitar o recurso de renovação automática do CEP e do CES.

Este artigo também explica como o CEP e o CES funcionam e fornece diretrizes de configuração.

Observação

O fluxo de trabalho incluído neste artigo se aplica a um cenário específico. O mesmo fluxo de trabalho pode não funcionar para uma situação diferente. No entanto, os princípios permanecem os mesmos.

Isenção de responsabilidade: essa configuração é criada para um requisito específico no qual você não quer usar a porta 443 para a comunicação HTTPS padrão para servidores CEP e CES. Embora essa configuração seja possível, ela tem capacidade de suporte limitada. Os Serviços de Atendimento ao Cliente e o Suporte podem ajudá-lo melhor caso siga este guia cuidadosamente usando o desvio mínimo da configuração do servidor Web fornecido.

Cenário

Para este exemplo, as instruções são baseadas em um ambiente que usa a seguinte configuração:

  • Uma floresta Contoso.com que tem uma PKI (infraestrutura de chave pública) do AD CS (Active Directory Certificate Services).

  • Duas instâncias do CEP/CES configuradas em um servidor em execução em uma conta de serviço. Uma instância usa nome de usuário e senha para registro inicial. A outra usa a autenticação baseada em certificado para renovação baseada em chave no modo somente renovação.

  • Um usuário tem um grupo de trabalho ou computador não ingressado no domínio para o qual ele registrará o certificado do computador usando credenciais de nome de usuário e senha.

  • A conexão do usuário com CEP e CES via HTTPS ocorre em uma porta personalizada, como 49999. (Essa porta é selecionada em um intervalo de portas dinâmico e não é usada como uma porta estática por nenhum outro serviço.)

  • Quando o tempo de vida do certificado está chegando ao fim, o computador usa a renovação baseada em chave CES que é baseada em certificado para renovar o certificado pelo mesmo canal.

deployment

Instruções de configuração

Visão geral

  1. Configure o modelo para renovação baseada em chave.

  2. Como pré-requisito, configure um servidor do CEP e CES para autenticação de nome de usuário e senha. Nesse ambiente, nos referimos à instância como "CEPCES01".

  3. Configure outra instância do CEP e CES usando o PowerShell para autenticação baseada em certificado no mesmo servidor. A instância do CES usará uma conta de serviço.

    Nesse ambiente, nos referimos à instância como "CEPCES02". A conta de serviço usada é "cepcessvc".

  4. Defina as configurações do lado do cliente.

Configuração

Esta seção fornece as etapas para configurar o registro inicial.

Observação

Você também pode configurar qualquer conta de serviço de usuário, MSA ou GMSA para que o CES funcione.

Como pré-requisito, configure o CEP e o CES em um servidor usando o nome de usuário e a autenticação de senha.

Configure o modelo para renovação baseada em chave

Duplique um modelo de computador existente e defina as seguintes configurações do modelo:

  1. Na guia Nome da Entidade do modelo de certificado, verifique se as opções Fornecer na Solicitação e Usar informações de entidade de certificados existentes para solicitações de renovação de registro automático estão selecionadas. New Templates

  2. Alterne para a guia Requisitos de Emissão e marque a caixa de seleção aprovação do gerenciador de certificados da AC. Issuance Requirements

  3. Atribua a permissão Leitura e Registro à conta de serviço do cepcessvc para este modelo.

  4. Publique o novo modelo na AC.

Observação

Verifique se as configurações de compatibilidade no modelo estão definidas como Windows Server 2012 R2, pois há um problema conhecido no qual os modelos não ficam visíveis se a compatibilidade for definida como Windows Server 2016 ou versão posterior. Para obter mais informações, consulte Não é possível selecionar no Windows Server 2016 os modelos de certificado compatíveis com a AC do Windows Server 2016 ou servidores CEP ou CAs baseados posteriormente.

Configurar a instância do CEPCES01

Etapa 1: instalar a instância

Para instalar a instância do CEPCES01, use um dos métodos a seguir.

Método 1

Consulte os seguintes artigos para obter diretrizes passo a passo para habilitar o CEP e o CES para autenticação de nome de usuário e senha:

Diretrizes do Serviço Web de Política de Registro de Certificado

Diretrizes do Serviço Web de Registro de Certificado

Observação

Não selecione a opção "Habilitar renovação baseada em chave" se você configurar as instâncias CEP e CES de autenticação de nome de usuário e senha.

Método 2

Use os seguintes cmdlets do PowerShell para instalar as instâncias CEP e CES:

Import-Module ServerManager
Add-WindowsFeature Adcs-Enroll-Web-Pol
Add-WindowsFeature Adcs-Enroll-Web-Svc
Install-AdcsEnrollmentPolicyWebService -AuthenticationType Username -SSLCertThumbprint "sslCertThumbPrint"

Esse comando instala o CEP (Serviço Web de Política de Registro de Certificado) especificando que um nome de usuário e uma senha são usados para autenticação.

Observação

Neste comando, <SSLCertThumbPrint> é a impressão digital do certificado que será usado para associar o IIS.

Install-AdcsEnrollmentWebService -ApplicationPoolIdentity -CAConfig "CA1.contoso.com\contoso-CA1-CA" -SSLCertThumbprint "sslCertThumbPrint" -AuthenticationType Username

Esse comando instala o CES (Serviço Web de Registro de Certificado) para usar a autoridade de certificação para um nome de computador de CA1.contoso.com e um nome comum da AC contoso-CA1-CA. A identidade do CES é especificada como a identidade padrão do pool de aplicativos. O tipo de autenticação é nome de usuário. SSLCertThumbPrint é a impressão digital do certificado que será usado para associar o IIS.

Etapa 2: verificar o console Gerenciador dos IISs (Serviços de Informações da Internet)

Após uma instalação bem-sucedida, você espera visualizar a exibição a seguir no console do Gerenciador de IIS (Serviços de Informações da Internet). Screenshot that shows the Internet Information Services Manager console.

Em Site Padrão, selecione ADPolicyProvider_CEP_UsernamePassword e, em seguida, abra Configurações do Aplicativo. Observe a ID e o URI.

É possível adicionar um Nome Amigável para gerenciamento.

Configurar a instância do CEPCES02

Etapa 1: instalar o CEP e o CES para renovação baseada em chave no mesmo servidor.

Execute o seguinte comando no PowerShell:

Install-AdcsEnrollmentPolicyWebService -AuthenticationType Certificate -SSLCertThumbprint "sslCertThumbPrint" -KeyBasedRenewal

Esse comando instala o CEP (Serviço Web de Política de Registro de Certificado) e especifica que um certificado é usado para autenticação.

Observação

Neste comando, <SSLCertThumbPrint> é a impressão digital do certificado que será usado para associar o IIS.

A renovação baseada em chave permite que os clientes de certificado renovem seus certificados usando a chave do certificado existente para autenticação. Quando estiver no modo de renovação baseada em chave, o serviço retornará apenas modelos de certificado definidos para renovação baseada em chave.

Install-AdcsEnrollmentWebService -CAConfig "CA1.contoso.com\contoso-CA1-CA" -SSLCertThumbprint "sslCertThumbPrint" -AuthenticationType Certificate -ServiceAccountName "Contoso\cepcessvc" -ServiceAccountPassword (read-host "Set user password" -assecurestring) -RenewalOnly -AllowKeyBasedRenewal

Esse comando instala o CES (Serviço Web de Registro de Certificado) para usar a autoridade de certificação para um nome de computador de CA1.contoso.com e um nome comum da AC contoso-CA1-CA.

Nesse comando, a identidade do Serviço Web de Registro de Certificado é especificada como a conta de serviço cepcessvc. O tipo de autenticação é certificado. SSLCertThumbPrint é a impressão digital do certificado que será usado para associar o IIS.

O cmdlet RenewalOnly permite que o CES seja executado somente no modo de renovação. O cmdlet AllowKeyBasedRenewal também especifica que o CES aceitará solicitações de renovação baseadas em chave para o servidor de registro. Esses são certificados de cliente válidos para autenticação que não são mapeados diretamente para uma entidade de segurança.

Observação

A conta de serviço deve fazer parte do grupo IIS_IUSRS no servidor.

Etapa 2: verificar o console do Gerenciador do IIS

Após uma instalação bem-sucedida, você espera visualizar a exibição a seguir no console do IIS. IIS manager

Selecione KeyBasedRenewal_ADPolicyProvider_CEP_Certificate em Site Padrão e abra Configurações do Aplicativo. Anote a ID e o URI. É possível adicionar um Nome Amigável para gerenciamento.

Observação

Se a instância estiver instalada em um novo servidor, verifique duas vezes a ID para garantir que a ID é a mesma que foi gerada na instância CEPCES01. É possível copiar e colar o valor diretamente se ele for diferente.

Concluir a configuração dos Serviços Web de Registro de Certificados

Para poder registrar o certificado em nome da funcionalidade do CEP e do CES, configure a conta de computador do grupo de trabalho no Active Directory e configure a delegação restrita na conta de serviço.

Etapa 1: criar uma conta de computador para o computador do grupo de trabalho no Active Directory

Essa conta será usada para autenticar a renovação baseada em chave e a opção "Publicar no Active Directory" no modelo de certificado.

Observação

Você não precisa ingressar no domínio do computador cliente. Essa conta entra em cena ao fazer a autenticação baseada em certificado no KBR para o serviço dsmapper.

New Object

Etapa 2: configurar a conta de serviço para Delegação Restrita (S4U2Self)

Execute o seguinte comando do PowerShell para habilitar a delegação restrita (S4U2Self ou qualquer protocolo de autenticação):

Get-ADUser -Identity cepcessvc | Set-ADAccountControl -TrustedToAuthForDelegation $True
Set-ADUser -Identity cepcessvc -Add @{'msDS-AllowedToDelegateTo'=@('HOST/CA1.contoso.com','RPCSS/CA1.contoso.com')}

Observação

Nesse comando, <cepcessvc> é a conta de serviço e <CA1.contoso.com> é a Autoridade de Certificação.

Importante

Não estamos habilitando o sinalizador RENEWALONBEHALOF na AC nesta configuração porque estamos usando a delegação restrita para fazer o mesmo trabalho para nós. Isso nos permite evitar adicionar a permissão para a conta de serviço à segurança da AC.

Etapa 3: configurar uma porta personalizada no servidor Web do IIS
  1. No console do Gerenciador do IIS, selecione Site Padrão.

  2. No painel de ação, selecione Editar Associação de Site.

  3. Altere a configuração de porta padrão de 443 para sua porta personalizada. A captura de tela de exemplo mostra uma configuração de porta de 49999. Change port

Etapa 4: editar o objeto de serviços de registro de AC no Active Directory
  1. Em um controlador de domínio, abra adsiedit.msc.

  2. Conecte-se à partição Configuração e navegue até o objeto de serviços de registro da AC:

    CN=ENTCA,CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration,DC=contoso,DC=com

  3. Clique com o botão direito do mouse e edite o objeto da CA. Altere o atributo msPKI-Enrollment-Servers usando a porta personalizada com seus URIs de servidor do CEP e CES que foram encontrados nas configurações do aplicativo. Por exemplo:

    140https://cepces.contoso.com:49999/ENTCA_CES_UsernamePassword/service.svc/CES0
    181https://cepces.contoso.com:49999/ENTCA_CES_Certificate/service.svc/CES1
    

    ADSI Edit

Configurar o computador cliente

No computador cliente, configure as Políticas de registro e a política de Registro Automático. Para fazer isso, execute estas etapas:

  1. Selecione Iniciar>Execução e, em seguida, insira gpedit.msc.

  2. Acesse Configuração do Computador>Configurações do Windows>Configurações de Segurança e clique em Políticas de Chave Pública.

  3. Habilite a política Cliente dos Serviços de Certificados – Registro Automático para corresponder às configurações na captura de tela a seguir. Certificate group policy

  4. Habilitar Cliente de Serviços de Certificado – Política de Registro de Certificado.

    a. Clique em Adicionar para adicionar a política de registro e insira o URI do CEP com UsernamePassword que editamos no ADSI.

    b. Para Tipo de autenticação, selecione Nome de usuário/senha.

    c. Defina uma prioridade de 10 e valide o servidor de política. Screenshot that shows where to set the priority.

    Observação

    Verifique se o número da porta foi adicionado ao URI e se é permitido no firewall.

  5. Registre o primeiro certificado para o computador por meio de certlm.msc. Screenshot that shows where to select the certificate enrollment policy.

    Selecione o modelo do KBR e registre o certificado. Screenshot that shows where to select the K B R template.

  6. Abra gpedit.msc novamente. Edite o Cliente de Serviços de Certificado – Política de Registro de Certificado e adicione a política de registro de renovação baseada em chave:

    a. Clique em Adicionar, insira o URI do CEP com o Certificado que editamos no ADSI.

    b. Defina uma prioridade de 1 e valide o servidor de política. Você será solicitado a autenticar e escolher o certificado que registramos inicialmente.

    Enrollment Policy

Observação

Verifique se o valor de prioridade da política de registro de renovação baseada em chave é menor do que a prioridade da política de registro de senha de nome de usuário. A primeira preferência é dada à prioridade mais baixa.

Testando a configuração

Para garantir que a Renovação Automática esteja funcionando, verifique se a renovação manual funciona renovando o certificado com a mesma chave usando o MMC. Além disso, você deve ser solicitado a selecionar um certificado durante a renovação. É possível escolher o certificado que registramos anteriormente. O prompt é esperado.

Abra o repositório de certificados pessoais do computador e adicione a exibição "certificados arquivados". Para fazer isso, adicione o snap-in da conta de computador local ao mmc.exe, realce Certificados (Computador Local) clicando nele, clique em exibir na guia de ação à direita ou na parte superior do MMC, clique em opções de exibição, selecione Certificados arquivados e clique em OK.

Método 1

Execute o comando a seguir:

certreq -machine -q -enroll -cert <thumbprint> renew

Screenshot that shows how to run the provided command.

Método 2

Avance a hora e a data no computador cliente para a hora de renovação do modelo de certificado.

Por exemplo, o modelo de certificado tem uma configuração de validade de dois dias e uma configuração de renovação de 8 horas definida. O certificado de exemplo foi emitido às 4:00 da manhã no 18º dia do mês, expira às 4:00 da manhã do dia 20. O mecanismo de Registro Automático é disparado na reinicialização e a cada intervalo de 8 horas (aproximadamente).

Portanto, se você avançar o tempo para 20h10 no dia 19, desde que nossa janela de renovação foi definida como 8 horas no modelo, a execução de Certutil -pulse (para disparar o mecanismo AE) registrará o certificado para você.

command

Após a conclusão do teste, reverta a configuração de tempo para o valor original e reinicie o computador cliente.

Observação

A captura de tela anterior é um exemplo para demonstrar que o mecanismo de Registro Automático funciona conforme o esperado porque a data da AC ainda está definida como a 18ª. Portanto, ele continua a emitir certificados. Em uma situação real, essa grande quantidade de renovações não ocorrerá.

Referências

Test Lab Guide: Demonstrating Certificate Key-Based Renewal

Serviços Web de Registro de Certificado

Install-AdcsEnrollmentPolicyWebService

Install-AdcsEnrollmentWebService

Confira também

Fórum de Segurança do Windows Server

Perguntas frequentes sobre PKI (infraestrutura de chave pública) do AD CS (Serviços de Certificados do Active Directory)

Biblioteca e referência de documentação do Windows PKI

Blog do Windows PKI

Como configurar a delegação restrita de Kerberos (somente S4U2Proxy ou Kerberos) em uma conta de serviço personalizada para páginas de proxy de registro da Web