Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
DNS sur HTTPS (DoH) pour le serveur DNS sur Windows Server est actuellement en préversion. Ces informations concernent un produit en version préliminaire qui peut être sensiblement modifié avant sa commercialisation. Microsoft n’offre aucune garantie, exprimée ou implicite, en ce qui concerne les informations fournies ici.
Cet article explique comment activer DNS via HTTPS (DoH) dans le service serveur DNS s’exécutant sur Windows Server.
Le trafic DNS traditionnel n’est pas chiffré, ce qui expose les requêtes DNS à l’écoute, à l’interception et à la manipulation par des attaquants sur votre réseau. Si vous devez protéger la communication DNS entre les clients et votre serveur DNS, l’activation de DoH chiffre ce trafic à l’aide du protocole HTTPS, ce qui empêche l’observation ou la falsification non autorisées.
Pour plus d’informations sur le fonctionnement de DoH, consultez chiffrement DNS à l’aide de DNS via HTTPS.
Prerequisites
Avant de commencer, vérifiez que vous disposez des points suivants :
Windows Server 2025 avec la mise à jour de sécurité 2026-02 (KB5075899) ou ultérieure installée
Accès à une autorité de certification (CA) :
- Microsoft Enterprise Certificate Authority avec des modèles de certificat publiés
ou
- Fournisseur de certificats tiers tel que DigiCert, Let’s Encrypt ou Verisign
Règles de pare-feu configurées pour autoriser les connexions entrantes sur le port TCP 443 pour DoH
Accès administratif ou équivalent à Windows Server hébergeant le service serveur DNS
Pour activer DNS sur HTTPS sur le service serveur DNS, demandez l’accès à l’aide de DoH sur Windows DNS Server : Inscription en préversion publique. Une fois demandé, suivez les instructions que vous recevez avant de continuer.
Les certificats DoH doivent répondre aux exigences suivantes :
Extension d’utilisation améliorée de la clé : doit inclure l’identificateur d’objet Authentification du serveur (1.3.6.1.5.5.7.3.1)
Nom ou nom alternatif de l'objet : certificat signé avec un nom alternatif de l'objet (SAN) et le nom de domaine entièrement qualifié ou l’adresse IP qui correspond à votre modèle d’URI DoH configuré.
Clé privée : doit être présente dans le magasin de l’ordinateur local, correctement associée au certificat et ne doit pas avoir une protection forte de clé privée activée
Chaîne d’approbation : doit être émise par une autorité de certification que le serveur DNS et les clients DNS approuvent
Pour connaître les configurations de certificats plus complexes, consultez Certificats et clés publiques et Utilisation des certificats.
Importer le certificat
Si vous disposez déjà d’un certificat sur le serveur, accédez à Lier le certificat. Sinon, importez votre certificat sur le serveur.
Placez le fichier du
.pfxcertificat (contenant à la fois le certificat et la clé privée) sur le serveur hébergeant le serveur DNS.Ouvrez PowerShell en tant qu’administrateur et exécutez la commande suivante pour importer le certificat, en veillant à remplacer
<pfxpath>par le chemin d’accès à votre.pfxfichier et<pfxpassword>par le mot de passe du.pfxfichier :Import-PfxCertificate ` -FilePath "<pfxpath>" ` -CertStoreLocation "Cert:\LocalMachine\My" ` -Password (Read-Host -AsSecureString "<pfxpassword>")Lorsque vous y êtes invité, entrez le mot de passe de votre certificat.
Pour vérifier que le certificat a été importé avec succès, exécutez la commande suivante, en remplaçant
<subject-name>par l’objet de votre certificat :Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }
Lier le certificat
Après avoir importé le certificat, liez-le au port du serveur afin que le serveur DNS puisse l’utiliser pour les connexions HTTPS.
Générez un nouveau GUID et stockez-le dans une variable en exécutant la commande suivante :
$guid = New-GuidRécupérez votre certificat et stockez-le dans une variable en exécutant la commande suivante. Remplacez
<subject-name>par l’objet de votre certificat :$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }Liez le certificat au port du serveur en exécutant la commande suivante :
netsh http add sslcert ipport=0.0.0.0:443 certhash=$($cert.Thumbprint) appid="{$guid}"
Conseil / Astuce
Pour que le service serveur DNS réponde au trafic DoH sur une adresse IP spécifique au lieu de toutes les adresses, remplacez 0.0.0.0 par votre adresse IP souhaitée. L’adresse IP doit correspondre ou se résoudre à l’hôte spécifié dans le SAN de votre certificat. Vous pouvez également remplacer 443 par un autre numéro de port.
Vérifier la liaison de certificat
Vérifiez que votre certificat est correctement lié à l’adresse IP et au port appropriés.
Exécutez la commande suivante pour afficher les liaisons de certificat SSL :
netsh http show sslcertVérifiez que la sortie affiche votre adresse IP et votre port, et que le hachage de certificat correspond à votre empreinte numérique.
Configurer les règles de pare-feu
DoH utilise un port TCP différent du DNS non chiffré. Vous devez donc configurer votre pare-feu pour autoriser le trafic entrant sur le port que vous avez spécifié lors de la liaison du certificat. Par défaut, DoH utilise le port TCP 443, sauf si vous avez spécifié un autre port dans le modèle d’URI et les étapes de liaison de certificat.
Configurez le Pare-feu Windows pour autoriser les connexions entrantes sur le port DoH configuré en procédant comme suit :
Pour créer une règle de pare-feu qui autorise le trafic DoH entrant, exécutez la commande suivante :
New-NetFirewallRule -DisplayName "DNS over HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action AllowVérifiez que la règle de pare-feu a été créée en exécutant la commande suivante :
Get-NetFirewallRule -DisplayName "DNS over HTTPS"
Note
Si vous avez configuré DoH pour utiliser un autre port, remplacez 443 par votre numéro de port personnalisé. Si vous utilisez un pare-feu matériel ou un groupe de sécurité réseau, vérifiez qu’il autorise également le trafic TCP entrant sur le même port.
Activer le DoH
Après avoir lié le certificat et configuré des règles de pare-feu, activez le DoH sur votre serveur DNS.
Activez DoH et définissez le modèle d’URI à l’aide de la commande Set-DnsServerEncryptionProtocol . Remplacez
dns.contoso.compar le nom d’hôte (ou l’adresse IP) contenu dans le san de votre certificat :Set-DnsServerEncryptionProtocol -EnableDoh $true -UriTemplate "https://dns.contoso.com:443/dns-query"Note
Vérifiez que le numéro de port dans le modèle d’URI correspond au numéro de port que vous avez utilisé lors de la liaison du certificat.
Redémarrez le service DNS pour appliquer les modifications :
Restart-Service -Name DNS
Vérifier la configuration DoH
Testez que DoH fonctionne correctement en vérifiant la configuration et le test à partir d’un client.
Vérifiez la configuration doH sur le serveur à l’aide de la commande Get-DnsServerEncryptionProtocol :
Get-DnsServerEncryptionProtocolOuvrez l’Observateur d’événements sur le serveur et accédez à Journaux des applications et des services > Serveur DNS.
Recherchez l’ID d’événement
822, ce qui indique que le service DoH a démarré correctement.
Tester DoH à partir d’un client
Pour vérifier que DoH fonctionne correctement, testez la résolution DNS à partir d’un client compatible DoH.
Configurez un client DoH pour utiliser le chiffrement pour votre serveur DNS avec le même modèle d’URI que celui que vous avez configuré. Pour connaître les étapes de configuration du client, consultez Secure DNS Client over HTTPS (DoH).
À partir du client DoH configuré, testez la résolution DNS à l’aide de la commande Resolve-DnsName . Remplacez par
contoso.comun domaine que vous souhaitez résoudre :Resolve-DnsName -Name contoso.com -Type ALa requête DNS se résout correctement.
Pour vérifier davantage l’activité DoH, suivez l’article suivant pour surveiller DoH sur votre serveur DNS.