Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du aktiverar DNS via HTTPS (DoH) i DNS Server-tjänsten som körs på Windows Server.
Traditionell DNS-trafik är okrypterad, vilket gör DNS-frågor tillgängliga för avlyssning, avlyssning och manipulering av angripare i nätverket. Om du behöver skydda DNS-kommunikationen mellan klienter och DNS-servern krypterar aktivering av DoH trafiken med HTTPS, vilket förhindrar obehörig observation eller manipulering.
Mer information om hur DoH fungerar finns i DNS-kryptering med DNS via HTTPS.
Förutsättningar
Kontrollera att du har följande innan du börjar:
Windows Server 2025 med säkerhetsuppdateringen 2026-06 (KB5094125) eller senare installerad
Åtkomst till en certifikatutfärdare (CA):
- Microsoft Enterprise-certifikatutfärdare med publicerade certifikatmallar
Or
- Tredjepartscertifikatprovider som DigiCert, Let's Encrypt eller Verisign
Brandväggsregler som konfigurerats för att tillåta inkommande anslutningar på TCP-port 443 för DoH
Administrativ eller motsvarande åtkomst till Windows Server som är värd för DNS Server-tjänsten
DoH-certifikat måste uppfylla följande krav:
Utökat tillägg för nyckelanvändning: Måste innehålla serverautentiseringsobjektidentifierare (1.3.6.1.5.5.7.3.1)
Ämne eller alternativt ämnesnamn: Ett signerat certifikat med ett Subject Alternative Name (SAN) som har det fullständigt kvalificerade domännamnet eller IP-adressen som matchar din konfigurerade DoH-URI-mall
Privat nyckel: Måste finnas i den lokala datorns lager, korrekt kopplad till certifikatet, och får inte ha aktiverat starkt skydd för privat nyckel.
Förtroendekedja: Måste utfärdas av en ca som både DNS-servern och DNS-klienterna litar på
Mer komplexa certifikatkonfigurationer finns i Certifikat och offentliga nycklar och Arbeta med certifikat.
Importera certifikatet
Om du redan har ett certifikat på servern går du till Bind certifikatet. Annars importerar du certifikatet till servern.
Placera certifikatets
.pfxfil (som innehåller både certifikat och privat nyckel) på servern som är värd för DNS-servern.Öppna PowerShell som administratör och kör följande kommando för att importera certifikatet, se till att ersätta
<pfxpath>med sökvägen till.pfxfilen och<pfxpassword>med lösenordet för.pfxfilen:Import-PfxCertificate ` -FilePath "<pfxpath>" ` -CertStoreLocation "Cert:\LocalMachine\My" ` -Password (Read-Host -AsSecureString "<pfxpassword>")När du uppmanas att göra det anger du lösenordet för certifikatet.
Kontrollera att certifikatet har importerats genom att köra följande kommando och ersätta
<subject-name>med certifikatets ämne:Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }
Binda certifikatet
När du har importerat certifikatet binder du det till serverporten så att DNS-servern kan använda det för HTTPS-anslutningar.
Generera ett nytt GUID och lagra det i en variabel genom att köra följande kommando:
$guid = New-GuidHämta certifikatet och lagra det i en variabel genom att köra följande kommando. Ersätt
<subject-name>med certifikatets ämne:$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }Binda certifikatet till serverporten genom att köra följande kommando:
netsh http add sslcert ipport=0.0.0.0:443 certhash=$($cert.Thumbprint) appid="{$guid}"
Tips/Råd
Om du vill att DNS Server-tjänsten ska svara på DoH-trafik på en specifik IP-adress i stället för alla adresser ersätter 0.0.0.0 du med önskad IP-adress. IP-adressen måste antingen vara eller matcha den värd som finns i SAN för ditt certifikat. Du kan också ersätta 443 med ett annat portnummer.
Verifiera certifikatbindningen
Bekräfta att certifikatet är korrekt bundet till rätt IP-adress och port.
Kör följande kommando för att visa SSL-certifikatbindningarna:
netsh http show sslcertKontrollera att utdata visar din IP-adress och port och att certifikatshashen matchar tumavtrycket.
Konfigurera brandväggsregler
DoH använder en annan TCP-port än okrypterad DNS, så du måste konfigurera brandväggen för att tillåta inkommande trafik på den port som du angav när du band certifikatet. Som standard använder DoH TCP-port 443 om du inte har angett en annan port i URI-mallen och certifikatbindningsstegen.
Konfigurera Windows-brandväggen för att tillåta inkommande anslutningar på den konfigurerade DoH-porten med hjälp av följande steg:
Kör följande kommando för att skapa en brandväggsregel som tillåter inkommande DoH-trafik:
New-NetFirewallRule -DisplayName "DNS over HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action AllowKontrollera att brandväggsregeln skapades genom att köra följande kommando:
Get-NetFirewallRule -DisplayName "DNS over HTTPS"
Anmärkning
Om du har konfigurerat DoH för att använda en annan port ersätter 443 du med ditt anpassade portnummer. Om du använder en maskinvarubrandvägg eller nätverkssäkerhetsgrupp kontrollerar du att den även tillåter inkommande TCP-trafik på samma port.
Aktivera DoH
När du har bundet certifikatet och konfigurerat brandväggsregler aktiverar du DoH på DNS-servern.
Aktivera DoH och ange URI-mallen med kommandot Set-DnsServerEncryptionProtocol . Ersätt
dns.contoso.commed värdnamnet (eller IP-adressen) som finns i SAN på certifikatet:Set-DnsServerEncryptionProtocol -EnableDoh $true -UriTemplate "https://dns.contoso.com:443/dns-query"Anmärkning
Kontrollera att portnumret i URI-mallen matchar det portnummer som du använde när du band certifikatet.
Starta om DNS-tjänsten för att tillämpa ändringarna:
Restart-Service -Name DNS
Verifiera DoH-konfiguration
Testa att DoH fungerar korrekt genom att verifiera konfigurationen och testningen från en klient.
Kontrollera DoH-konfigurationen på servern med kommandot Get-DnsServerEncryptionProtocol :
Get-DnsServerEncryptionProtocolÖppna Loggboken på servern och gå till DNS-servern för program- och tjänstloggar>.
Sök efter händelse-ID
822, vilket anger att DoH-tjänsten har startats.
Testa DoH från en klient
Kontrollera att DoH fungerar korrekt genom att testa DNS-matchning från en DoH-kompatibel klient.
Konfigurera en DoH-klient för att använda kryptering för DNS-servern med samma URI-mall som du konfigurerade. Information om klientkonfigurationssteg finns i Skydda DNS-klienten via HTTPS (DoH).
Från den konfigurerade DoH-klienten testar du DNS-matchning med kommandot Resolve-DnsName . Ersätt
contoso.commed en domän som du vill lösa:Resolve-DnsName -Name contoso.com -Type ADNS-frågan löser problemet.
Om du vill verifiera DoH-aktiviteten ytterligare följer du nästa steg för att övervaka DoH på DNS-servern.