Compartir a través de


Habilitación de DNS a través de HTTPS en el servidor DNS (versión preliminar)

Importante

DNS a través de HTTPS (DoH) para el servidor DNS en Windows Server se encuentra actualmente en versión preliminar. Esta información está relacionada con un producto de versión preliminar que puede modificarse sustancialmente antes de su lanzamiento. Microsoft no ofrece ninguna garantía, expresada o implícita, con respecto a la información proporcionada aquí.

En este artículo se explica cómo habilitar DNS a través de HTTPS (DoH) en el servicio servidor DNS que se ejecuta en Windows Server.

El tráfico DNS tradicional no está cifrado, lo que expone las consultas DNS a la escucha, intercepción y manipulación por parte de atacantes en su red. Si necesita proteger la comunicación DNS entre los clientes y el servidor DNS, habilitar DoH cifra ese tráfico mediante HTTPS, lo que impide la observación o manipulación no autorizadas.

Para obtener más información sobre cómo funciona DoH, consulte Cifrado DNS mediante DNS a través de HTTPS.

Prerrequisitos

Antes de comenzar, asegúrese de que tiene:

  • Windows Server 2025 con la actualización de seguridad 2026-02 (KB5075899) o posterior instalada

  • Acceso a una entidad de certificación (CA):

    • Entidad de certificación de Microsoft Enterprise con plantillas de certificado publicadas

    O

    • Proveedor de certificados de terceros, como DigiCert, Let's Encrypt o Verisign
  • Reglas de firewall configuradas para permitir conexiones entrantes en el puerto TCP 443 para DoH

  • Acceso administrativo o equivalente al servidor de Windows Server que hospeda el servicio servidor DNS

  • Para habilitar DNS a través de HTTPS en el servicio servidor DNS, solicite acceso mediante DoH en Windows DNS Server: registro de versión preliminar pública. Antes de continuar, siga las instrucciones que reciba una vez solicitado.

Los certificados doH deben cumplir los siguientes requisitos:

  • Extensión de uso mejorado de clave: debe incluir el identificador de objeto de autenticación de servidor (1.3.6.1.5.5.7.3.1)

  • Sujeto o Nombre Alternativo del Sujeto: Un certificado firmado con un Nombre Alternativo del Sujeto (SAN) que contiene el nombre de dominio completo o la dirección IP que coincide con la plantilla URI configurada de DoH.

  • Clave privada: debe estar presente en el almacén del equipo local, asociado correctamente con el certificado y no debe tener habilitada la protección de clave privada segura.

  • Cadena de confianza: debe emitirse mediante una entidad de certificación que confíe tanto en el servidor DNS como en los clientes DNS.

Para obtener configuraciones de certificados más complejas, consulte Certificados y claves públicas y Trabajar con certificados.

Importación del certificado

Si ya tiene un certificado en el servidor, vaya a Enlazar el certificado. De lo contrario, importe el certificado al servidor.

  1. Coloque el archivo del .pfx certificado (que contiene el certificado y la clave privada) en el servidor que hospeda el servidor DNS.

  2. Abra PowerShell como administrador y ejecute el siguiente comando para importar el certificado, asegurándose de reemplazar <pfxpath> por la ruta de acceso al .pfx archivo y <pfxpassword> por la contraseña del .pfx archivo:

    Import-PfxCertificate `
        -FilePath "<pfxpath>" `
        -CertStoreLocation "Cert:\LocalMachine\My" `
        -Password (Read-Host -AsSecureString "<pfxpassword>")
    
  3. Cuando se le solicite, escriba la contraseña del certificado.

  4. Para comprobar que el certificado se importó correctamente, ejecute el siguiente comando y reemplace <subject-name> por el asunto del certificado:

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

Vincular el certificado

Después de importar el certificado, conéctelo al puerto del servidor para que el servidor DNS pueda usarlo para las conexiones HTTPS.

  1. Genere un nuevo GUID y almacénelo en una variable mediante la ejecución del comando siguiente:

    $guid = New-Guid
    
  2. Recupere el certificado y almacénelo en una variable ejecutando el comando siguiente. Reemplace <subject-name> por el asunto del certificado:

    $cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }
    
  3. Para enlazar el certificado al puerto del servidor, ejecute el comando siguiente:

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

Sugerencia

Para que el servicio servidor DNS responda al tráfico de DoH en una dirección IP específica en lugar de todas las direcciones, reemplace por 0.0.0.0 la dirección IP deseada. La dirección IP debe ser o resolverse en el host contenido en la SAN del certificado. También puede reemplazar 443 por un número de puerto diferente.

Verificar la vinculación del certificado

Confirme que el certificado está enlazado correctamente a la dirección IP y el puerto correctos.

  1. Ejecute el siguiente comando para mostrar los enlaces de certificado SSL:

    netsh http show sslcert
    
  2. Compruebe que la salida muestra la dirección IP y el puerto, y que el hash del certificado coincide con la huella digital.

Configurar reglas de firewall

DoH usa un puerto TCP diferente al DNS sin cifrar, por lo que debe configurar el firewall para permitir el tráfico entrante en el puerto especificado al enlazar el certificado. De forma predeterminada, DoH usa el puerto TCP 443 a menos que haya especificado un puerto diferente en la plantilla de URI y los pasos de enlace de certificados.

Configure el Firewall de Windows para permitir conexiones entrantes en el puerto DOH configurado mediante los siguientes pasos:

  1. Para crear una regla de firewall que permita el tráfico doH entrante, ejecute el siguiente comando:

    New-NetFirewallRule -DisplayName "DNS over HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
    
  2. Ejecute el comando siguiente para comprobar que la regla de firewall se creó:

    Get-NetFirewallRule -DisplayName "DNS over HTTPS"
    

Nota:

Si configuró DoH para usar un puerto diferente, reemplace por 443 el número de puerto personalizado. Si usa un firewall de hardware o un grupo de seguridad de red, asegúrese de que también permite el tráfico TCP entrante en el mismo puerto.

Habilitación del DoH

Después de enlazar el certificado y configurar las reglas de firewall, habilite el DoH en el servidor DNS.

  1. Habilite DoH y establezca la plantilla de URI mediante el comando Set-DnsServerEncryptionProtocol . Reemplace por dns.contoso.com el nombre de host (o dirección IP) incluido en la SAN en el certificado:

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

    Nota:

    Asegúrese de que el número de puerto de la plantilla de URI coincide con el número de puerto que usó al enlazar el certificado.

  2. Reinicie el servicio DNS para aplicar los cambios:

    Restart-Service -Name DNS
    

Comprobación de la configuración de DoH

Pruebe que DoH funciona correctamente comprobando la configuración y las pruebas de un cliente.

  1. Compruebe la configuración de DoH en el servidor mediante el comando Get-DnsServerEncryptionProtocol :

    Get-DnsServerEncryptionProtocol
    
  2. Abra el Visor de eventos en el servidor y vaya a Servidor DNS de registros > de aplicaciones y servicios.

  3. Busque el identificador de evento 822, que indica que el servicio DoH se inició correctamente.

Probar DoH desde un cliente

Para confirmar que DoH funciona correctamente, pruebe la resolución DNS desde un cliente compatible con DoH.

  1. Configure un cliente DoH para usar el cifrado para el servidor DNS con la misma plantilla de URI que configuró. Para conocer los pasos de configuración del cliente, consulte Protección del cliente DNS a través de HTTPS (DoH).

  2. En el cliente DoH configurado, pruebe la resolución DNS mediante el comando Resolve-DnsName . Reemplace por contoso.com un dominio que quiera resolver:

    Resolve-DnsName -Name contoso.com -Type A
    
  3. La consulta DNS se resuelve correctamente.

Para comprobar aún más la actividad de DoH, siga el artículo de pasos siguientes para supervisar DoH en el servidor DNS.

Pasos siguientes