Udostępnij za pośrednictwem


Włączanie usługi DNS za pośrednictwem protokołu HTTPS na serwerze DNS (wersja zapoznawcza)

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.

  1. Umieść plik certyfikatu .pfx (zawierający zarówno certyfikat, jak i klucz prywatny) na serwerze hostujący serwer DNS.

  2. 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>")
    
  3. Po wyświetleniu monitu wprowadź hasło dla certyfikatu.

  4. 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.

  1. Wygeneruj nowy identyfikator GUID i zapisz go w zmiennej, uruchamiając następujące polecenie:

    $guid = New-Guid
    
  2. Pobierz 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>" }
    
  3. 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.

  1. Uruchom następujące polecenie, aby wyświetlić powiązania certyfikatów SSL:

    netsh http show sslcert
    
  2. Sprawdź, 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:

  1. 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 Allow
    
  2. Sprawdź, 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.

  1. Włącz aplikację DoH i ustaw szablon identyfikatora URI przy użyciu polecenia Set-DnsServerEncryptionProtocol . Zastąp dns.contoso.com cią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.

  2. 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.

  1. Sprawdź konfigurację platformy DoH na serwerze przy użyciu polecenia Get-DnsServerEncryptionProtocol :

    Get-DnsServerEncryptionProtocol
    
  2. Otwórz Podgląd zdarzeń na serwerze i przejdź do pozycji Aplikacje i usługi Dzienniki > serwera DNS.

  3. 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.

  1. 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).

  2. Z poziomu skonfigurowanego klienta DoH przetestuj rozpoznawanie nazw DNS przy użyciu polecenia Resolve-DnsName . Zastąp contoso.com element domeną, którą chcesz rozwiązać:

    Resolve-DnsName -Name contoso.com -Type A
    
  3. Zapytanie DNS zostało pomyślnie rozpoznane.

Aby dokładniej zweryfikować aktywność DoH, wykonaj następne kroki, aby monitorować DoH na swoim serwerze DNS.

Dalsze kroki