# Certificados do Domain Controller&#x20;

{% 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 os seus controladores de domínio. Isso permite que os seus dispositivos AAD ou ligados em modo híbrido autentiquem-se sem interrupções ao aceder a recursos locais. Isto pode ser usado para implementar o **Hybrid Key trust para Windows Hello for Business**. O SCEPman substituirá a आवश्यकता de uma **infraestrutura de chave pública**. Os detalhes podem ser encontrados [aqui](https://docs.microsoft.com/en-us/windows/security/identity-protection/hello-for-business/hello-hybrid-key-trust-prereqs)

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

**Este recurso tem novos requisitos para a Root CA.**\
Se estiver a atualizar a partir de uma versão anterior, como **1.6** tem de gerar uma **nova** Root CA.\
Para suportar certificados de autenticação Kerberos, o certificado da CA deve não conter qualquer extensão Enchanced Key Usage (EKU) ou deve incluir Kerberos Authentication e Smart Card Logon.

Se estiver a começar com SCEPman **1.6** e a gerar a Root CA com o nosso SCEPman, pode ignorar os passos seguintes.\
Caso contrário, siga este guia para gerar uma nova Root CA.

{% hint style="warning" %}
Se gerar um novo certificado da CA, tem de atualizar as suas políticas do Intune e implementar a nova Root CA e os novos certificados de Utilizador e de Dispositivo!
{% endhint %}

1. Navegue até ao seu **Key Vault**
2. Verifique se a sua Conta de Utilizador foi adicionada às **políticas de acesso** com todas as permissões de certificado
3. Vá para **Certificates**, selecione o seu certificado da CA e clique em **Delete**
4. Depois de ter eliminado com sucesso o certificado da CA, tem de clicar em **Manage deleted certificates**
5. Selecione o seu certificado da CA, que eliminou no Passo 3, e clique em **Purge** (Tenha em atenção que, depois de ter eliminado permanentemente o certificado, não o pode restaurar!)
6. Agora reinicie os seus serviços da aplicação SCEPman
7. Assim que os seus App Services forem reiniciados, abra o Painel de Controlo do SCEPman navegando até ao URL do seu SCEPman
8. Pode ver a secção **Config issues**, siga os passos nesta secção.
9. Depois de ter gerado o novo certificado da CA, pode verificar a adequação da CA no Painel de Controlo do SCEPman.

Adequação da CA no Painel de Controlo 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 ativar o recurso, tem de adicionar duas definições de aplicação no seu serviço SCEPman. Na implementação atual, usamos uma chave pré-partilhada (palavra-passe) para pedidos DC.\
**Gere uma nova chave/palavra-passe e guarde-a num local seguro.** (vai precisar dela nos passos seguintes e mais tarde, nos controladores de domínio)

1. Navegue até **App Services**
2. Em seguida, escolha a sua aplicação SCEPman
3. Depois, em **Settings** clique em **Environment variables**
4. Selecione Add
5. Type **AppConfig:DCValidation:Enabled** como Name (use \_\_ em vez de : para SCEPman baseado em Linux)
6. Type **true** como Value
7. Confirme com **OK**
8. Selecione **Adicionar** novamente
9. Type **AppConfig:DCValidation:RequestPassword** como Name (use \_\_ em vez de : para SCEPman baseado em Linux)
10. Introduza a sua **chave/palavra-passe**, que gerou anteriormente, como Value
11. Confirme com **OK**
12. Guarde as definições da aplicação

## Confie no certificado da CA no domínio para autenticação Kerberos

Os certificados usados para autenticação Kerberos precisam de ser confiados no domínio AD como certificados de CA de autenticação. Faça o download do certificado da CA a partir do Painel de Controlo do SCEPman. Se guardou o ficheiro como `scepman-root.cer`, pode publicar o certificado da CA do SCEPman (seja uma Root CA ou uma Intermediate CA) com o seguinte comando, usando uma conta com direitos de Enterprise Administrator:

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

De forma análoga, execute o seguinte comando para enviar o certificado da Root CA (ou seja, o certificado da CA do SCEPman ou, caso o SCEPman seja uma Intermediate CA, a Root CA da cadeia de certificados da CA do SCEPman) para a store de certificados Trusted Root para todas as máquinas na floresta AD:

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

Depois disso, o certificado da CA fica geralmente confiado no AD e, em especial, confiado para autenticação Kerberos. No entanto, demora algum tempo (na configuração predefinida, até 8 horas) até que todos os dispositivos recebam esta configuração. Pode acelerar este processo em qualquer máquina executando `gpupdate /force`, por exemplo, nos controladores de domínio.

Isto garante que os certificados DC são confiados dentro do domínio. Também são confiados em todos os dispositivos geridos pelo Intune abrangidos por um perfil de Certificado de Confiança que distribui o certificado da Root CA. Pode ser necessário distribuir a Root CA manualmente para outros serviços, como appliances ou serviços cloud, para tornar os certificados DC confiados por todos os sistemas.

## Instalação no cliente

Depois, tem de fazer o download do nosso software cliente SCEP de código aberto [SCEPClient](https://github.com/scepman/scepclient/releases). As versões com o sufixo *-framework* usam .NET Framework 4.6.2, que vem pré-instalado no Windows Server 2016 e é compatível com versões mais recentes. Outras versões requerem que o .NET Core Runtime esteja instalado nos sistemas de destino.

Execute o seguinte comando numa linha de comandos elevada num controlador de domínio para receber um certificado de Controlador de Domínio do SCEPman:

```
ScepClient.exe newdccert https://your-scepman-domain/dc RequestPassword
```

Tem de adicionar o URL do SCEPman no comando anterior, mas manter o caminho `/dc`. Substitua `RequestPassword` pela chave/palavra-passe segura que gerou anteriormente.

A palavra-passe do pedido é encriptada com o certificado da CA do SCEPman, por isso só o SCEPman a pode ler. Os certificados de Controlador de Domínio só são emitidos com a palavra-passe do pedido correta.

### Renovação automatizada de certificados

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

Para uma renovação totalmente automatizada de certificados, deve distribuir o ScepClient para **todos** os seus controladores de domínio, juntamente com o script do 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 num contexto SYSTEM (adapte o URL e a palavra-passe do pedido):

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

Certifique-se de que o script do PowerShell se encontra no mesmo diretório que o SCEPClient.exe e as suas dependências adicionais.

![Configurar 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 DC na store da máquina. Apenas se não existirem certificados adequados com pelo menos 30 dias de validade, usa o ScepClient.exe para solicitar um novo certificado DC ao SCEPman. Se quiser modificar o limite de 30 dias, use o parâmetro -ValidityThresholdDays do script do PowerShell.

O script escreve um ficheiro de registo contínuo no diretório onde está armazenado. Se não quiser este ficheiro de registo, omita o `-LogToFile` parâmetro. Em alternativa, pode redirecionar os fluxos Information, Error e/ou Debug para ficheiros (por exemplo, `6>logfile.txt 2>&1`).

Para WHfB, todos os DCs que executem a versão 2016 ou mais recente precisam de um certificado de autenticação Kerberos. DCs mais antigos encaminham pedidos de autenticação para DCs mais recentes, pelo que não necessitam necessariamente de um certificado de autenticação Kerberos. Ainda assim, é uma boa prática fornecê-los também com certificados.

### Descontinuação de uma PKI interna existente

Certifique-se de que as PKIs internas não emitem certificados 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 DC da PKI interna, que é considerado não confiável se, por exemplo, o CDP estiver inacessível. O certificado DC do SCEPman pode ser usado para todos os fins para os quais os certificados dos modelos acima mencionados podem ser usados, por exemplo, autenticação Kerberos e LDAPS.

A forma mais simples de o fazer é impedir que as CAs internas emitam certificados para os modelos "Domain Controller", "Domain Controller Authentication" e "Kerberos Authentication". No snap-in MMC da Autoridade de Certificação, elimine estes modelos da lista de modelos emitidos de cada CA interna. Depois, elimine os certificados já emitidos pela CA interna das lojas "MY" dos seus Controladores de Domínio (`certlm.msc` e navegue até Personal). Mesmo após uma `gpupdate /force`eliminação, nenhum novo certificado DC da PKI interna deverá aparecer na store Personal do DC.
