Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
System DNS za pośrednictwem protokołu HTTPS (DoH) dla serwera DNS w systemie Windows Server jest obecnie w wersji zapoznawczej. Te informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed jego wydaniem. Firma Microsoft nie udziela żadnych gwarancji, wyrażonych ani domniemanych, w odniesieniu do podanych tutaj informacji.
W tym artykule wyjaśniono, jak włączyć usługę DNS za pośrednictwem protokołu HTTPS (DoH) w usłudze serwera DNS uruchomionej w systemie Windows Server.
Tradycyjny ruch DNS jest niezaszyfrowany, co uwidacznia zapytania DNS w celu podsłuchiwania, przechwytywania i manipulowania przez osoby atakujące w sieci. Jeśli musisz chronić komunikację DNS między klientami i serwerem DNS, włączenie usługi DoH szyfruje ten ruch przy użyciu protokołu HTTPS, uniemożliwiając nieautoryzowaną obserwację lub manipulowanie.
Aby uzyskać więcej informacji o sposobie działania usługi DoH, zobacz Szyfrowanie DNS przy użyciu protokołu DNS za pośrednictwem protokołu HTTPS.
Wymagania wstępne
Przed rozpoczęciem upewnij się, że masz:
Windows Server 2025 z zainstalowaną aktualizacją zabezpieczeń 2026-02 (KB5075899) lub nowszą
Dostęp do urzędu certyfikacji (CA):
- Urząd certyfikacji przedsiębiorstwa firmy Microsoft z opublikowanymi szablonami certyfikatów
lub
- Dostawca certyfikatów innych firm, taki jak DigiCert, Let's Encrypt lub Verisign
Reguły zapory skonfigurowane do zezwalania na połączenia przychodzące na porcie TCP 443 dla usługi DoH
Dostęp administracyjny lub równoważny do Windows Server hostującego usługę serwera DNS
Aby włączyć usługę DNS za pośrednictwem protokołu HTTPS w usłudze serwera DNS, zażądaj dostępu przy użyciu narzędzia DoH w systemie Windows DNS Server: rejestracja w publicznej wersji zapoznawczej. Po zażądaniu, przed kontynuowaniem, postępuj zgodnie z otrzymanymi instrukcjami.
Certyfikaty DoH muszą spełniać następujące wymagania:
Rozszerzenie funkcji rozszerzonego użycia klucza: musi zawierać identyfikator obiektu Uwierzytelnianie serwera (1.3.6.1.5.5.7.3.1)
Podmiot lub alternatywna nazwa podmiotu: podpisany certyfikat z alternatywną nazwą podmiotu (SAN) z w pełni kwalifikowaną nazwą domeny lub adresem IP zgodnym ze skonfigurowanym szablonem identyfikatora URI DoH.
Klucz prywatny: musi znajdować się w magazynie komputera lokalnego, być poprawnie skojarzony z certyfikatem i nie może mieć włączonej silnej ochrony klucza prywatnego.
Łańcuch zaufania: musi zostać wystawiony przez urząd certyfikacji, któremu ufa zarówno serwer DNS, jak i klienci DNS
Aby uzyskać bardziej złożone konfiguracje certyfikatów, zobacz Certyfikaty i klucze publiczne oraz Praca z certyfikatami.
Importowanie certyfikatu
Jeśli masz już certyfikat na serwerze, przejdź do tematu Wiązanie certyfikatu. W przeciwnym razie zaimportuj certyfikat na serwer.
Umieść plik certyfikatu
.pfx(zawierający zarówno certyfikat, jak i klucz prywatny) na serwerze hostujący serwer DNS.Otwórz program PowerShell jako administrator i uruchom następujące polecenie, aby zaimportować certyfikat, zastępując `
<pfxpath>` ścieżką do pliku `.pfx`, a `<pfxpassword>` hasłem dla pliku `.pfx`.Import-PfxCertificate ` -FilePath "<pfxpath>" ` -CertStoreLocation "Cert:\LocalMachine\My" ` -Password (Read-Host -AsSecureString "<pfxpassword>")Po wyświetleniu monitu wprowadź hasło dla certyfikatu.
Aby sprawdzić, czy certyfikat został pomyślnie zaimportowany, uruchom następujące polecenie, zastępując
<subject-name>element podmiotem certyfikatu:Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }
Powiąż certyfikat
Po zaimportowaniu certyfikatu powiąż go z portem serwera, aby serwer DNS mógł używać go na potrzeby połączeń HTTPS.
Wygeneruj nowy identyfikator GUID i zapisz go w zmiennej, uruchamiając następujące polecenie:
$guid = New-GuidPobierz certyfikat i zapisz go w zmiennej, uruchamiając następujące polecenie. Zastąp
<subject-name>podmiotem certyfikatu:$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }Powiąż certyfikat z portem serwera, uruchamiając następujące polecenie:
netsh http add sslcert ipport=0.0.0.0:443 certhash=$($cert.Thumbprint) appid="{$guid}"
Porada
Aby usługa serwera DNS odpowiadała na ruch DoH dla określonego adresu IP zamiast wszystkich adresów, zastąp 0.0.0.0 żądanym adresem IP. Adres IP musi być lub rozwiązywać do hosta zawartego w SAN certyfikatu. Możesz również zastąpić 443 innym numerem portu.
Weryfikowanie powiązania certyfikatu
Upewnij się, że certyfikat jest prawidłowo powiązany z prawidłowym adresem IP i portem.
Uruchom następujące polecenie, aby wyświetlić powiązania certyfikatów SSL:
netsh http show sslcertSprawdź, czy dane wyjściowe zawierają adres IP i port oraz czy skrót certyfikatu jest zgodny z odciskiem palca.
Konfigurowanie reguł zapory
DoH używa innego portu TCP niż niezaszyfrowany DNS, dlatego należy skonfigurować zaporę tak, aby zezwalała na ruch przychodzący na porcie określonym podczas wiązania certyfikatu. Domyślnie usługa DoH używa portu TCP 443, chyba że określono inny port w krokach szablonu identyfikatora URI i powiązania certyfikatu.
Skonfiguruj Zaporę systemu Windows, aby zezwolić na połączenia przychodzące na skonfigurowanym porcie DoH, wykonując następujące kroki:
Aby utworzyć regułę zapory zezwalającą na przychodzący ruch DoH, uruchom następujące polecenie:
New-NetFirewallRule -DisplayName "DNS over HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action AllowSprawdź, czy reguła zapory została utworzona, uruchamiając następujące polecenie:
Get-NetFirewallRule -DisplayName "DNS over HTTPS"
Uwaga / Notatka
Jeśli skonfigurowano usługę DoH do używania innego portu, zastąp 443 swoim niestandardowym numerem portu. Jeśli używasz sprzętowej zapory lub sieciowej grupy zabezpieczeń, upewnij się, że zezwala również na przychodzący ruch TCP na tym samym porcie.
Włącz funkcję DoH
Po powiązaniu certyfikatu i skonfigurowaniu reguł zapory włącz usługę DoH na serwerze DNS.
Włącz aplikację DoH i ustaw szablon identyfikatora URI przy użyciu polecenia Set-DnsServerEncryptionProtocol . Zastąp
dns.contoso.comciąg nazwą hosta (lub adresem IP) zawartą w sieci SAN w certyfikacie:Set-DnsServerEncryptionProtocol -EnableDoh $true -UriTemplate "https://dns.contoso.com:443/dns-query"Uwaga / Notatka
Upewnij się, że numer portu w szablonie identyfikatora URI jest zgodny z numerem portu użytym podczas wiązania certyfikatu.
Uruchom ponownie usługę DNS, aby zastosować zmiany:
Restart-Service -Name DNS
Weryfikowanie konfiguracji usługi DoH
Przetestuj, czy usługa DoH działa prawidłowo, sprawdzając konfigurację i testowanie z poziomu klienta.
Sprawdź konfigurację platformy DoH na serwerze przy użyciu polecenia Get-DnsServerEncryptionProtocol :
Get-DnsServerEncryptionProtocolOtwórz Podgląd zdarzeń na serwerze i przejdź do pozycji Aplikacje i usługi Dzienniki > serwera DNS.
Sprawdź identyfikator
822zdarzenia , który wskazuje, że usługa DoH została pomyślnie uruchomiona.
Testowanie aplikacji DoH z klienta
Aby potwierdzić, że DoH działa prawidłowo, przetestuj rozwiązywanie DNS z poziomu klienta z obsługą DoH.
Skonfiguruj klienta platformy DoH do używania szyfrowania dla serwera DNS przy użyciu tego samego skonfigurowanego szablonu identyfikatora URI. Aby zapoznać się z krokami konfiguracji klienta, zobacz Zabezpieczanie klienta DNS za pośrednictwem protokołu HTTPS (DoH).
Z poziomu skonfigurowanego klienta DoH przetestuj rozpoznawanie nazw DNS przy użyciu polecenia Resolve-DnsName . Zastąp
contoso.comelement domeną, którą chcesz rozwiązać:Resolve-DnsName -Name contoso.com -Type AZapytanie DNS zostało pomyślnie rozpoznane.
Aby dokładniej zweryfikować aktywność DoH, wykonaj następne kroki, aby monitorować DoH na swoim serwerze DNS.