Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come abilitare DNS su HTTPS (DoH) nel servizio Server DNS in esecuzione in Windows Server.
Il traffico DNS tradizionale non è crittografato, che espone le query DNS a intercettazioni, intercettazioni e manipolazione da parte di utenti malintenzionati nella rete. Se è necessario proteggere la comunicazione DNS tra client e server DNS, abilitare DoH crittografa il traffico usando HTTPS, impedendo l'osservazione o la manomissione non autorizzate.
Per altre informazioni sul funzionamento di DoH, vedere Crittografia DNS tramite DNS su HTTPS.
Prerequisiti
Prima di iniziare, assicurarsi di disporre di:
Windows Server 2025 con l'aggiornamento della sicurezza 2026-06 (KB5094125) o versione successiva installata
Accesso a un'autorità di certificazione (CA):
- Autorità di certificazione Microsoft Enterprise con modelli di certificato pubblicati
oppure
- Provider di certificati di terze parti, ad esempio DigiCert, Let's Encrypt o Verisign
Regole del firewall configurate per consentire le connessioni in ingresso sulla porta TCP 443 per DoH
Accesso amministrativo o equivalente a Windows Server che ospita il servizio Server DNS
I certificati DoH devono soddisfare i requisiti seguenti:
Estensione utilizzo chiavi avanzata: deve includere l'identificatore dell'oggetto Server Authentication (1.3.6.1.5.5.7.3.1)
Soggetto o Nome Alternativo del Soggetto: un certificato firmato con un Nome Alternativo del Soggetto (SAN), con il nome di dominio completo o l'indirizzo IP corrispondente al modello URI DoH configurato
Chiave privata: deve essere presente nell'archivio del computer locale, correttamente associato al certificato e non deve disporre di una protezione con chiave privata avanzata abilitata
Catena di attendibilità: deve essere rilasciata da una CA che considera attendibile sia il server DNS che i client DNS
Per configurazioni di certificati più complesse, vedere Certificati e chiavi pubbliche e Uso dei certificati.
Importare il certificato
Se nel server è già presente un certificato, passare a Associa il certificato. In caso contrario, importare il certificato nel server.
Posizionare il file del
.pfxcertificato (contenente sia il certificato che la chiave privata) nel server che ospita il server DNS.Aprire PowerShell come amministratore ed eseguire il comando seguente per importare il certificato, assicurandosi di sostituire
<pfxpath>con il percorso del.pfxfile e<pfxpassword>con la password per il.pfxfile:Import-PfxCertificate ` -FilePath "<pfxpath>" ` -CertStoreLocation "Cert:\LocalMachine\My" ` -Password (Read-Host -AsSecureString "<pfxpassword>")Quando richiesto, immettere la password per il certificato.
Per verificare che il certificato sia stato importato correttamente, eseguire il comando seguente, sostituendo
<subject-name>con l'oggetto del certificato:Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }
Associare il certificato
Dopo aver importato il certificato, associarlo alla porta del server in modo che il server DNS possa usarlo per le connessioni HTTPS.
Generare un nuovo GUID e archiviarlo in una variabile eseguendo il comando seguente:
$guid = New-GuidRecuperare il certificato e archiviarlo in una variabile eseguendo il comando seguente. Sostituire
<subject-name>con l'oggetto del certificato:$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }Associare il certificato alla porta del server eseguendo il comando seguente:
netsh http add sslcert ipport=0.0.0.0:443 certhash=$($cert.Thumbprint) appid="{$guid}"
Suggerimento
Per fare in modo che il servizio server DNS risponda al traffico DoH su un indirizzo IP specifico anziché su tutti gli indirizzi, sostituire 0.0.0.0 con l'indirizzo IP desiderato. L'indirizzo IP deve essere pari all'host contenuto nel SAN del certificato o risolversi in esso. È anche possibile sostituire 443 con un numero di porta diverso.
Verificare il binding del certificato
Verificare che il certificato sia associato correttamente all'indirizzo IP e alla porta corretti.
Eseguire il comando seguente per visualizzare le associazioni di certificati SSL:
netsh http show sslcertVerificare che l'output mostri il vostro indirizzo IP e la porta di comunicazione e che l'hash del certificato corrisponda alla vostra impronta digitale.
Configurare le regole del firewall
DoH usa una porta TCP diversa rispetto al DNS non crittografato, quindi è necessario configurare il firewall per consentire il traffico in ingresso sulla porta specificata durante l'associazione del certificato. Per impostazione predefinita, DoH usa la porta TCP 443, a meno che non sia stata specificata una porta diversa nel modello di URI e nei passaggi di associazione del certificato.
Configurare Windows Firewall per consentire le connessioni in ingresso sulla porta DoH configurata attenendosi alla procedura seguente:
Per creare una regola del firewall che consenta il traffico DoH in ingresso, eseguire il comando seguente:
New-NetFirewallRule -DisplayName "DNS over HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action AllowVerificare che la regola del firewall sia stata creata eseguendo il comando seguente:
Get-NetFirewallRule -DisplayName "DNS over HTTPS"
Annotazioni
Se DoH è stato configurato per l'uso di una porta diversa, sostituire 443 con il numero di porta personalizzato. Se si usa un firewall hardware o un gruppo di sicurezza di rete, assicurarsi che consenta anche il traffico TCP in ingresso sulla stessa porta.
Abilitare il DoH
Dopo aver associato il certificato e configurato le regole del firewall, abilitare il DoH nel server DNS.
Abilitare DoH e impostare il modello URI usando il comando Set-DnsServerEncryptionProtocol . Sostituire
dns.contoso.comcon il nome host (o l'indirizzo IP) contenuto nella rete SAN nel certificato:Set-DnsServerEncryptionProtocol -EnableDoh $true -UriTemplate "https://dns.contoso.com:443/dns-query"Annotazioni
Assicurarsi che il numero di porta nel modello URI corrisponda al numero di porta usato durante l'associazione del certificato.
Riavviare il servizio DNS per applicare le modifiche:
Restart-Service -Name DNS
Verificare la configurazione di DoH
Verificare che DoH funzioni correttamente verificando la configurazione e il test da un client.
Verificare la configurazione DoH nel server usando il comando Get-DnsServerEncryptionProtocol :
Get-DnsServerEncryptionProtocolAprire Visualizzatore eventi nel server e passare a Applicazioni e servizi Log > server DNS.
Verificare l'ID
822evento, che indica che il servizio DoH è stato avviato correttamente.
Eseguire il test di DoH da un client
Per verificare che DoH funzioni correttamente, testare la risoluzione DNS da un client compatibile con DoH.
Configurare un client DoH per l'uso della crittografia per il server DNS con lo stesso modello di URI configurato. Per i passaggi di configurazione del client, vedere Secure DNS Client over HTTPS (DoH).
Dal client DoH configurato testare la risoluzione DNS usando il comando Resolve-DnsName . Sostituire
contoso.comcon un dominio che si vuole risolvere:Resolve-DnsName -Name contoso.com -Type ALa query DNS viene risolta correttamente.
Per verificare ulteriormente l'attività DoH, seguire i passaggi successivi per monitorare DoH nel server DNS.