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.
Instruções de configuração
Visão geral
Configure o modelo para renovação baseada em chave.
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".
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".
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:
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.
Alterne para a guia Requisitos de Emissão e marque a caixa de seleção aprovação do gerenciador de certificados da AC.
Atribua a permissão Leitura e Registro à conta de serviço do cepcessvc para este modelo.
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).
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.
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.
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
No console do Gerenciador do IIS, selecione Site Padrão.
No painel de ação, selecione Editar Associação de Site.
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.
Etapa 4: editar o objeto de serviços de registro de AC no Active Directory
Em um controlador de domínio, abra adsiedit.msc.
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
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
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:
Selecione Iniciar>Execução e, em seguida, insira gpedit.msc.
Acesse Configuração do Computador>Configurações do Windows>Configurações de Segurança e clique em Políticas de Chave Pública.
Habilite a política Cliente dos Serviços de Certificados – Registro Automático para corresponder às configurações na captura de tela a seguir.
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.
Observação
Verifique se o número da porta foi adicionado ao URI e se é permitido no firewall.
Registre o primeiro certificado para o computador por meio de certlm.msc.
Selecione o modelo do KBR e registre o certificado.
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.
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
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ê.
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