Compartilhar via


Habilitar o DNS via HTTPS no servidor DNS (versão prévia)

Importante

O DNS via HTTPS (DoH) para o Servidor DNS no Windows Server está atualmente em PREVIEW. Essas informações estão relacionadas a um produto de pré-lançamento que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, expressas ou implícitas, em relação às informações fornecidas aqui.

Este artigo explica como habilitar o DNS por HTTPS (DoH) no serviço DNS Server em execução no Windows Server.

O tráfego DNS tradicional não é criptografado, o que expõe consultas DNS à espionagem, interceptação e manipulação por invasores em sua rede. Se você precisar proteger a comunicação DNS entre clientes e seu servidor DNS, habilitar o DoH criptografa esse tráfego usando HTTPS, impedindo a observação ou a adulteração não autorizadas.

Para obter mais informações sobre como o DoH funciona, consulte a criptografia DNS usando DNS via HTTPS.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Windows Server 2025 com a Atualização de Segurança 2026-02 (KB5075899) ou posterior instalada

  • Acesso a uma AC (autoridade de certificação):

    • Microsoft Enterprise Certificate Authority com modelos de certificado publicados

    Ou

    • Provedor de certificados de terceiros, como DigiCert, Let's Encrypt ou Verisign
  • Regras de firewall configuradas para permitir conexões de entrada na porta TCP 443 para DoH

  • Acesso administrativo ou equivalente ao Windows Server que hospeda o serviço DNS Server

  • Para habilitar o DNS via HTTPS no serviço servidor DNS, solicite acesso usando o DoH no Servidor DNS do Windows: Registro de Visualização Pública. Depois de solicitado, siga as instruções recebidas antes de continuar.

Os certificados DoH devem atender aos seguintes requisitos:

  • Extensão de uso de chave aprimorada: deve incluir o identificador de objeto autenticação de servidor (1.3.6.1.5.5.7.3.1)

  • Assunto ou Nome Alternativo da Entidade: um certificado assinado com um SAN (Nome Alternativo da Entidade) com o nome de domínio totalmente qualificado ou o endereço IP que corresponde ao modelo de URI do DoH configurado

  • Chave privada: deve estar presente no repositório do Computador Local, corretamente associado ao certificado e não deve ter uma proteção de chave privada forte habilitada

  • Cadeia de confiança: Deve ser emitida por uma AC que tanto o servidor DNS quanto os clientes DNS confiem

Para obter configurações de certificado mais complexas, consulte Certificados e Chaves Públicas e Trabalhando com Certificados.

Importar o certificado

Se você já tiver um certificado no servidor, vá para Associar o certificado. Caso contrário, importe o certificado para o servidor.

  1. Coloque o arquivo do .pfx certificado (contendo certificado e chave privada) no servidor que hospeda o servidor DNS.

  2. Abra o PowerShell como administrador e execute o seguinte comando para importar o certificado, certificando-se de substituir <pfxpath> pelo caminho para o .pfx arquivo e <pfxpassword> pela senha do .pfx arquivo:

    Import-PfxCertificate `
        -FilePath "<pfxpath>" `
        -CertStoreLocation "Cert:\LocalMachine\My" `
        -Password (Read-Host -AsSecureString "<pfxpassword>")
    
  3. Quando solicitado, insira a senha do certificado.

  4. Para verificar se o certificado foi importado com êxito, execute o seguinte comando, substituindo <subject-name> pelo assunto do certificado:

    Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }
    

Associar o certificado

Depois de importar o certificado, associe-o à porta do servidor para que o servidor DNS possa usá-lo para conexões HTTPS.

  1. Gere um novo GUID e armazene-o em uma variável executando o seguinte comando:

    $guid = New-Guid
    
  2. Recupere o certificado e armazene-o em uma variável executando o comando a seguir. Substitua <subject-name> pelo assunto do certificado:

    $cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }
    
  3. Associe o certificado à porta do servidor executando o seguinte comando:

    netsh http add sslcert ipport=0.0.0.0:443 certhash=$($cert.Thumbprint) appid="{$guid}"
    

Dica

Para que o serviço servidor DNS responda ao tráfego do DoH em um endereço IP específico em vez de todos os endereços, substitua 0.0.0.0 pelo endereço IP desejado. O endereço IP deve ser ou ser resolvido para o host contido na SAN do seu certificado. Você também pode substituir 443 por um número de porta diferente.

Verificar a vinculação do certificado

Confirme se o certificado está devidamente associado ao endereço IP e à porta corretos.

  1. Execute o seguinte comando para exibir as associações de certificado SSL:

    netsh http show sslcert
    
  2. Verifique se a saída mostra seu endereço IP e porta e se o hash do certificado corresponde à sua impressão digital.

Configurar regras de firewall

O DoH usa uma porta TCP diferente do DNS não criptografado, portanto, você precisa configurar o firewall para permitir o tráfego de entrada na porta especificada ao associar o certificado. Por padrão, o DoH usa a porta TCP 443, a menos que você tenha especificado uma porta diferente nas etapas de associação de certificado e modelo de URI.

Configure o Firewall do Windows para permitir conexões de entrada na porta DoH configurada usando as seguintes etapas:

  1. Para criar uma regra de firewall que permita o tráfego do DoH de entrada, execute o seguinte comando:

    New-NetFirewallRule -DisplayName "DNS over HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
    
  2. Verifique se a regra de firewall foi criada executando o seguinte comando:

    Get-NetFirewallRule -DisplayName "DNS over HTTPS"
    

Observação

Se você configurou o DoH para usar uma porta diferente, substitua 443 pelo número da porta personalizada. Se você estiver usando um firewall de hardware ou um grupo de segurança de rede, verifique se ele também permite o tráfego TCP de entrada na mesma porta.

Habilitar o DoH

Depois de associar o certificado e configurar regras de firewall, habilite o DoH no servidor DNS.

  1. Habilite o DoH e defina o modelo de URI usando o comando Set-DnsServerEncryptionProtocol . Substitua dns.contoso.com pelo nome do host (ou endereço IP) contido na SAN em seu certificado:

    Set-DnsServerEncryptionProtocol -EnableDoh $true -UriTemplate "https://dns.contoso.com:443/dns-query"
    

    Observação

    Verifique se o número da porta no modelo de URI corresponde ao número de porta usado ao associar o certificado.

  2. Reinicie o serviço DNS para aplicar as alterações:

    Restart-Service -Name DNS
    

Verificar a configuração do DoH

Teste se o DoH está funcionando corretamente verificando a configuração e realizando testes a partir de um cliente.

  1. Verifique a configuração do DoH no servidor usando o comando Get-DnsServerEncryptionProtocol :

    Get-DnsServerEncryptionProtocol
    
  2. Abra o Visualizador de Eventos no servidor e navegue até Logs de Aplicativos e Serviços> Servidor DNS.

  3. Verifique a ID 822do evento, que indica que o serviço DoH foi iniciado com êxito.

Testar o DoH de um cliente

Para confirmar se o DoH está funcionando corretamente, teste a resolução DNS de um cliente compatível com DoH.

  1. Configure um cliente DoH para usar criptografia para o servidor DNS com o mesmo modelo de URI configurado. Para obter as etapas de configuração do cliente, consulte Secure DNS Client over HTTPS (DoH).

  2. No cliente DoH configurado, teste a resolução DNS usando o comando Resolve-DnsName . Substitua contoso.com por um domínio que você deseja resolver:

    Resolve-DnsName -Name contoso.com -Type A
    
  3. A consulta DNS é resolvida com êxito.

Para verificar ainda mais a atividade do DoH, siga o artigo das próximas etapas para monitorar o DoH no servidor DNS.

Próximas etapas