# Certificados de Controlador de Domínio

{% hint style="info" %}
Este recurso requer a versão **1.6** ou superior.
{% endhint %}

{% hint style="warning" %}
Apenas SCEPman Enterprise Edition
{% endhint %}

Você pode usar o SCEPman para emitir certificados de autenticação Kerberos para seus controladores de domínio. Isso permite que seus dispositivos ingressados no AAD ou híbridos autentiquem-se de forma transparente ao acessar recursos on‑premises. Isso pode ser usado para implementar o **Confiança de chave híbrida para o Windows Hello for Business**. O SCEPman substituirá a exigência de uma **Infraestrutura de chave pública**. Detalhes podem ser encontrados [aqui](https://docs.microsoft.com/en-us/windows/security/identity-protection/hello-for-business/hello-hybrid-key-trust-prereqs)

## CA raiz sem a extensão Enhanced Key Usage (EKU)

**Este recurso tem novos requisitos para a CA raiz.**\
Se você estiver atualizando de uma versão anterior como **1.6** você deve gerar uma **nova** CA raiz.\
Para suportar certificados de autenticação Kerberos o certificado da CA deve conter ou nenhuma extensão Enhanced Key Usage (EKU) ou deve incluir Kerberos Authentication e Smart Card Logon.

Se você está começando com o SCEPman **1.6** e gerando a CA raiz com nosso SCEPman, você pode pular os passos a seguir.\
Caso contrário, siga este guia para gerar uma nova CA raiz.

{% hint style="warning" %}
Se você gerar um novo certificado de CA você deve atualizar suas políticas do Intune e implantar a nova CA raiz e os novos certificados de Usuário e de Dispositivo!
{% endhint %}

1. Navegue até seu **Key Vault**
2. Verifique se sua conta de usuário foi adicionada às **Políticas de acesso** com todas as permissões de certificado
3. Vá para **Certificados**, selecione seu certificado de CA e clique em **Excluir**
4. Depois de excluir com sucesso o certificado da CA você deve clicar em **Gerenciar certificados excluídos**
5. Selecione seu certificado de CA, que você excluiu na Etapa 3 e clique em **Purga** (Tenha em mente que depois de você purgar o certificado ele não poderá ser restaurado!)
6. Agora reinicie seus App Services do SCEPman
7. Uma vez que seus App Services sejam reiniciados abra o Painel do SCEPman navegando até sua URL do SCEPman
8. Você pode ver a seção **Problemas de configuração**, por favor siga os passos nesta seção.
9. Após gerar o novo certificado da CA você pode verificar a adequação da CA no Painel do SCEPman.

Adequação da CA no Painel do SCEPman:

![](https://3802289327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2Fgit-blob-4998f1e56f64d240e4e8d23a9aa886cc8b49724b%2F2022-05-27%2011_09_46-Window.png?alt=media)

## Alterações de configuração no serviço SCEPman

Para habilitar o recurso, você deve adicionar duas configurações de aplicativo no seu serviço SCEPman. Na implementação atual usamos uma chave pré‑compartilhada (senha) para solicitações de DC.\
**Por favor gere uma nova chave/senha e armazene-a em um local seguro.** (você precisará dela nos passos seguintes e mais tarde, nos Controladores de Domínio)

1. Navegar para **App Services**
2. Então escolha seu aplicativo SCEPman
3. Em seguida, em **Configurações** clique em **Variáveis de ambiente**
4. Selecione Adicionar
5. Digite **AppConfig:DCValidation:Enabled** como Nome
6. Digite **true** como Valor
7. Confirme com **OK**
8. Selecione **Adicionar** novamente
9. Digite **AppConfig:DCValidation:RequestPassword** como Nome
10. Digite sua **chave/senha**, que você gerou anteriormente, como Valor
11. Confirme com **OK**
12. Salve as configurações do aplicativo

## Confie no certificado da CA no Domínio para Autenticação Kerberos

Certificados usados para autenticação Kerberos precisam ser confiáveis dentro do domínio AD como certificados de CA de autenticação. Por favor baixe o certificado da CA a partir do Painel do SCEPman. Se você armazenou o arquivo como `scepman-root.cer`, você pode publicar o certificado da CA do SCEPman (seja ele uma CA raiz ou uma CA intermediária) com o seguinte comando usando uma conta que possua direitos de Administrador Corporativo:

```
certutil -f -dsPublish scepman-root.cer NTAuthCA
```

Analogamente, execute o seguinte comando para enviar o certificado da CA raiz (isto é, o certificado da CA do SCEPman ou, no caso do SCEPman ser uma CA intermediária, a CA raiz da cadeia de certificados da CA do SCEPman) para o armazenamento de Certificados Raiz Confiáveis para todas as máquinas na Floresta AD:

```
certutil -f -dsPublish scepman-root.cer RootCA
```

Posteriormente, o certificado da CA é geralmente confiável no AD e especialmente confiável para Autenticação Kerberos. Entretanto, leva algum tempo (na configuração padrão até 8 horas) até que todos os dispositivos recebam essa configuração. Você pode acelerar esse processo em qualquer máquina executando `gpupdate /force`, por exemplo, nos controladores de domínio.

Isso garante que os certificados de DC sejam confiáveis dentro do domínio. Eles também são confiáveis em todos os dispositivos gerenciados pelo Intune no escopo de um perfil de Certificado Confiável que distribua o certificado da CA raiz. Pode ser necessário distribuir a CA raiz manualmente para outros serviços como appliances ou serviços em nuvem para tornar os certificados de DC confiáveis para todos os sistemas.

## Instalação no Cliente

Então você deve baixar nosso software cliente SCEP de código aberto [SCEPClient](https://github.com/scepman/scepclient/releases). Releases com o sufixo *-framework* usam .NET Framework 4.6.2, que já vem pré‑instalado no Windows Server 2016 e é compatível com versões mais recentes. Outras releases exigem que o .NET Core Runtime seja instalado nos sistemas de destino.

Execute o seguinte comando em um prompt de comando elevado em um controlador de domínio para receber um certificado de Controlador de Domínio do SCEPman:

```
ScepClient.exe newdccert https://seu-dominio-scepman/dc RequestPassword
```

Você deve adicionar a URL do SCEPman no comando anterior mas mantenha o caminho `/dc`. Substitua `RequestPassword` pela chave/senha segura que você gerou anteriormente.

A senha de solicitação é criptografada com o certificado da CA do SCEPman, então somente o SCEPman pode lê‑la. Certificados de Controlador de Domínio são emitidos apenas com a senha de solicitação correta.

### Renovação automatizada de certificados

{% hint style="warning" %}
O comando acima solicita um novo certificado de DC independentemente de já existir ou não um certificado válido. Veja a seção seguinte para saber como renovar certificados somente se o certificado existente estiver prestes a expirar.
{% endhint %}

Para uma renovação totalmente automatizada de certificados, você deveria distribuir o ScepClient para **todos** os seus controladores de domínio, juntamente com o script PowerShell [enroll-dc-certificate.ps1](https://github.com/scepman/scepclient/blob/Core31/enroll-dc-certificate.ps1). Adicione uma tarefa agendada que execute o seguinte comando em um contexto SYSTEM (adapte a URL e a senha de solicitação):

```
powershell -ExecutionPolicy RemoteSigned -File c:\scepman\enroll-dc-certificate.ps1 -SCEPURL https://seu-dominio-scepman/dc -SCEPChallenge RequestPassword -LogToFile
```

Por favor, certifique‑se de que o script PowerShell resida no mesmo diretório que o SCEPClient.exe e suas dependências adicionais.

![Configurando a ação de execução na Tarefa Agendada](https://3802289327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2Fgit-blob-732f9e212c1622579da03c12e497e2b1b632aaab%2Fimage%20\(17\).png?alt=media)

Isto verifica a existência de certificados de DC no armazenamento da máquina. Somente se não houver certificados adequados com pelo menos 30 dias de validade, ele usa o ScepClient.exe para solicitar um novo certificado de DC ao SCEPman. Se você quiser modificar o limite de 30 dias, use o parâmetro -ValidityThresholdDays do script PowerShell.

O script grava um arquivo de log contínuo no diretório onde está armazenado. Se você não quiser esse arquivo de log, omita o `-LogToFile` parâmetro. Você pode em vez disso redirecionar os fluxos Information, Error e/ou Debug para arquivos (por exemplo, `6>logfile.txt 2>&1`).

Para WHfB, todos os DCs executando a versão 2016 ou mais recentes precisam de um certificado de Autenticação Kerberos. DCs mais antigos encaminham solicitações de autenticação para DCs mais novos, portanto eles não necessitam necessariamente de um certificado de Autenticação Kerberos. Ainda assim, é uma boa prática fornecê‑los com certificados também.

### Eliminação gradual de uma PKI interna existente

Por favor assegure‑se de que PKIs internas não inscrevam certificados de DC (Modelos de Certificado "Domain Controller", "Domain Controller Authentication" e "Kerberos Authentication") em paralelo com o SCEPman. Caso contrário, os DCs podem usar o certificado de DC da PKI interna, o que é considerado não confiável se, por exemplo, o CDP estiver inacessível. O certificado de DC do SCEPman pode ser usado para todos os propósitos para os quais os certificados dos modelos mencionados acima podem ser usados, por exemplo autenticação Kerberos e LDAPS.

A maneira mais fácil de realizar isso é impedir que as CAs internas emitam certificados para os modelos "Domain Controller", "Domain Controller Authentication" e "Kerberos Authentication". No Snap‑In MMC de Certification Authority, exclua esses modelos da lista de modelos emitidos de cada CA interna. Em seguida, exclua certificados já emitidos pela CA interna das Lojas "PESSOAL" ("MY") dos seus Controladores de Domínio (`certlm.msc` e navegue até Pessoal). Mesmo após uma `gpupdate /force`, nenhum novo certificado de DC da PKI interna deve aparecer na loja Pessoal do DC.
