Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Coloque el archivo del
.pfxcertificado (que contiene el certificado y la clave privada) en el servidor que hospeda el servidor DNS.Abra PowerShell como administrador y ejecute el siguiente comando para importar el certificado, asegurándose de reemplazar
<pfxpath>por la ruta de acceso al.pfxarchivo y<pfxpassword>por la contraseña del.pfxarchivo:Import-PfxCertificate ` -FilePath "<pfxpath>" ` -CertStoreLocation "Cert:\LocalMachine\My" ` -Password (Read-Host -AsSecureString "<pfxpassword>")Cuando se le solicite, escriba la contraseña del certificado.
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.
Genere un nuevo GUID y almacénelo en una variable mediante la ejecución del comando siguiente:
$guid = New-GuidRecupere 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>" }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.
Ejecute el siguiente comando para mostrar los enlaces de certificado SSL:
netsh http show sslcertCompruebe 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:
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 AllowEjecute 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.
Habilite DoH y establezca la plantilla de URI mediante el comando Set-DnsServerEncryptionProtocol . Reemplace por
dns.contoso.comel 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.
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.
Compruebe la configuración de DoH en el servidor mediante el comando Get-DnsServerEncryptionProtocol :
Get-DnsServerEncryptionProtocolAbra el Visor de eventos en el servidor y vaya a Servidor DNS de registros > de aplicaciones y servicios.
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.
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).
En el cliente DoH configurado, pruebe la resolución DNS mediante el comando Resolve-DnsName . Reemplace por
contoso.comun dominio que quiera resolver:Resolve-DnsName -Name contoso.com -Type ALa 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.