Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek vysvětluje, jak povolit DNS přes HTTPS (DoH) ve službě SERVERU DNS spuštěné na Windows Serveru.
Tradiční provoz DNS je nešifrovaný, což zpřístupňuje dotazy DNS pro odposlouchávání, zachycení a manipulaci útočníky ve vaší síti. Pokud potřebujete chránit komunikaci DNS mezi klienty a serverem DNS, povolte doH šifrování provozu pomocí protokolu HTTPS, což brání neoprávněnému pozorování nebo manipulaci.
Další informace o tom, jak DoH funguje, najdete v tématu Šifrování DNS pomocí DNS přes HTTPS.
Požadavky
Než začnete, ujistěte se, že máte:
Windows Server 2025 s nainstalovanou aktualizací zabezpečení 2026–06 (KB5094125) nebo novější
Přístup k certifikační autoritě (CA):
- Certifikační autorita společnosti Microsoft s publikovanými šablonami certifikátů
Nebo
- Poskytovatel certifikátů třetích stran, jako je DigiCert, Let's Encrypt nebo Verisign
Pravidla brány firewall nakonfigurovaná pro povolení příchozích připojení na portu TCP 443 pro DoH.
Přístup pro správu nebo ekvivalentní přístup k Windows Serveru, který je hostitelem služby DNS Server
Certifikáty DoH musí splňovat následující požadavky:
Rozšíření pro rozšířené použití klíče: Musí obsahovat identifikátor objektu serverového ověřování (1.3.6.1.5.5.7.3.1).
Název subjektu nebo alternativní název subjektu: Podepsaný certifikát s alternativním názvem subjektu (SAN) s plně kvalifikovaným názvem domény nebo IP adresou, která odpovídá nakonfigurované šabloně URI DoH.
Privátní klíč: Musí být v úložišti místního počítače správně přidružený k certifikátu a nesmí mít povolenou silnou ochranu privátního klíče.
Řetězec důvěry: Musí být vystavená certifikační autoritou, kterou důvěřují jak server DNS, tak klienti DNS.
Složitější nastavení certifikátů najdete v tématu Certifikáty a veřejné klíče a práce s certifikáty.
Import certifikátu
Pokud už máte certifikát na serveru, přejděte na Propojit certifikát. V opačném případě importujte certifikát na server.
Umístěte soubor certifikátu
.pfx(obsahující certifikát i privátní klíč) na server, který je hostitelem serveru DNS.Otevřete PowerShell jako správce a spuštěním následujícího příkazu naimportujte certifikát a nezapomeňte ho nahradit
<pfxpath>cestou k souboru.pfxa<pfxpassword>heslem souboru.pfx:Import-PfxCertificate ` -FilePath "<pfxpath>" ` -CertStoreLocation "Cert:\LocalMachine\My" ` -Password (Read-Host -AsSecureString "<pfxpassword>")Po zobrazení výzvy zadejte heslo pro certifikát.
Pokud chcete ověřit, že se certifikát úspěšně naimportoval, spusťte následující příkaz a nahraďte
<subject-name>ho předmětem vašeho certifikátu:Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }
Propojte certifikát
Po importu certifikátu ho vytvořte vazbu na port serveru, aby ho server DNS mohl použít pro připojení HTTPS.
Spuštěním následujícího příkazu vygenerujte nový identifikátor GUID a uložte ho do proměnné:
$guid = New-GuidNačtěte certifikát a uložte ho do proměnné spuštěním následujícího příkazu. Nahraďte
<subject-name>předmětem vašeho certifikátu:$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }Vytvořte vazbu certifikátu na port serveru spuštěním následujícího příkazu:
netsh http add sslcert ipport=0.0.0.0:443 certhash=$($cert.Thumbprint) appid="{$guid}"
Návod
Pokud chcete, aby služba SERVERU DNS reagovala na provoz DoH na konkrétní IP adresu místo všech adres, nahraďte 0.0.0.0 požadovanou IP adresou. IP adresa musí buď patřit hostiteli obsaženému v SAN vašeho certifikátu, nebo směřovat na hostitele. Můžete také nahradit 443 jiným číslem portu.
Ověření vazby certifikátu
Ověřte, že je váš certifikát správně svázaný se správnou IP adresou a portem.
Spuštěním následujícího příkazu zobrazte vazby certifikátů SSL:
netsh http show sslcertOvěřte, že výstup zobrazuje vaši IP adresu a port a že hodnota hash certifikátu odpovídá vašemu kryptografickému otisku.
Konfigurujte pravidla brány firewall
DoH používá jiný port TCP než nešifrovaný DNS, takže je potřeba nakonfigurovat bránu firewall tak, aby umožňovala příchozí provoz na portu, který jste zadali při vazbě certifikátu. Ve výchozím nastavení používá DoH port TCP 443, pokud jste v šabloně identifikátoru URI a postupu vazby certifikátu nezadáli jiný port.
Nakonfigurujte bránu Windows Firewall tak, aby povolovala příchozí připojení na nakonfigurovaném portu DoH pomocí následujícího postupu:
Pokud chcete vytvořit pravidlo brány firewall, které povoluje příchozí provoz DoH, spusťte následující příkaz:
New-NetFirewallRule -DisplayName "DNS over HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action AllowOvěřte, že pravidlo brány firewall bylo vytvořeno, spuštěním následujícího příkazu:
Get-NetFirewallRule -DisplayName "DNS over HTTPS"
Poznámka:
Pokud jste nakonfigurovali DoH tak, aby používal jiný port, nahraďte 443 vlastním číslem portu. Pokud používáte hardware firewall nebo skupinu zabezpečení sítě, ujistěte se, že umožňuje také příchozí TCP provoz na stejném portu.
Povolte DoH
Po vytvoření vazby certifikátu a konfiguraci pravidel brány firewall povolte DoH na svém DNS serveru.
Povolte DoH a nastavte šablonu identifikátoru URI pomocí příkazu Set-DnsServerEncryptionProtocol . Nahraďte
dns.contoso.comnázvem hostitele (nebo IP adresou) obsaženým v síti SAN na vašem certifikátu:Set-DnsServerEncryptionProtocol -EnableDoh $true -UriTemplate "https://dns.contoso.com:443/dns-query"Poznámka:
Ujistěte se, že číslo portu v šabloně identifikátoru URI odpovídá číslu portu, které jste použili při vytváření vazby certifikátu.
Restartujte službu DNS, aby se změny projevily:
Restart-Service -Name DNS
Ověření konfigurace DoH
Otestujte, že doH funguje správně, a to ověřením konfigurace a testováním z klienta.
Pomocí příkazu Get-DnsServerEncryptionProtocol na serveru ověřte konfiguraci DoH:
Get-DnsServerEncryptionProtocolOtevřete Prohlížeč událostí na serveru a přejděte na Server DNS protokolů > aplikací a služeb.
Zkontrolujte ID
822události, což značí, že služba DoH byla úspěšně spuštěna.
Testování DoH z klienta
Pokud chcete ověřit, že doH funguje správně, otestujte překlad DNS z klienta podporujícího DoH.
Nakonfigurujte klienta DoH tak, aby používal šifrování pro server DNS se stejnou šablonou identifikátoru URI, kterou jste nakonfigurovali. Postup konfigurace klienta najdete v tématu Zabezpečení klienta DNS přes PROTOKOL HTTPS (DoH).
Z konfigurovaného klienta DoH otestujte řešení DNS pomocí příkazu Resolve-DnsName. Nahraďte
contoso.comdoménou, kterou chcete přeložit:Resolve-DnsName -Name contoso.com -Type ADotaz DNS se úspěšně vyřeší.
Pokud chcete dále ověřit aktivitu DoH, postupujte podle dalších kroků k monitorování DoH na serveru DNS.