DNS Sunucusunda HTTPS üzerinden DNS'yi etkinleştirme

Bu makalede, Windows Server'da çalışan DNS Sunucusu hizmetinde HTTPS (DoH) üzerinden DNS'nin nasıl etkinleştirileceği açıklanmaktadır.

Geleneksel DNS trafiği şifrelenmemiştir ve bu da DNS sorgularını ağınızdaki saldırganların dinlemesine, kesmesine ve düzenlemesine maruz bırakır. İstemcilerle DNS sunucunuz arasındaki DNS iletişimini korumanız gerekiyorsa, DoH'un etkinleştirilmesi bu trafiği HTTPS kullanarak şifreler ve yetkisiz gözlem veya kurcalamayı önler.

DoH'un nasıl çalıştığı hakkında daha fazla bilgi için bkz. HTTPS üzerinden DNS kullanarak DNS şifreleme.

Önkoşullar

Başlamadan önce şunların olduğundan emin olun:

  • 2026-06 Güvenlik Güncelleştirmesi (KB5094125) veya üzeri yüklü Windows Server 2025

  • Sertifika yetkilisine (CA) erişim:

    • Yayımlanan sertifika şablonlarıyla Microsoft Kurumsal Sertifika Yetkilisi

    Veya

    • DigiCert, Let's Encrypt veya Verisign gibi üçüncü taraf sertifika sağlayıcısı
  • DoH için 443 numaralı TCP bağlantı noktasında gelen bağlantılara izin verecek şekilde yapılandırılmış güvenlik duvarı kuralları

  • DNS Sunucusu hizmetini barındıran Windows Server'a yönetim veya eşdeğer erişim

DoH sertifikaları aşağıdaki gereksinimleri karşılamalıdır:

  • Gelişmiş Anahtar Kullanımı uzantısı: Sunucu Kimlik Doğrulaması (1.3.6.1.5.5.7.3.1) nesne tanımlayıcısı içermelidir

  • Konu veya Konu Alternatif Adı: Konu Alternatif Adı (SAN) ile yapılandırılmış DoH URI şablonunuzla eşleşen tam etki alanı adına veya IP adresine sahip imzalı sertifika

  • Özel anahtar: Yerel Bilgisayarın deposunda bulunmalı, sertifikayla doğru ilişkilendirilmelidir ve güçlü özel anahtar koruması etkinleştirilmemiş olmalıdır

  • Güven zinciri: Hem DNS sunucusunun hem de DNS istemcilerinin güvendiği bir CA tarafından verilmelidir

Daha karmaşık sertifika kurulumları için bkz. Sertifikalar ve Ortak Anahtarlar ve Sertifikalarla Çalışma.

Sertifikayı içeri aktarma

Sunucuda zaten bir sertifikanız varsa Sertifikayı bağlama bölümüne gidin. Aksi takdirde sertifikanızı sunucuya aktarın.

  1. Sertifikanın .pfx dosyasını (hem sertifika hem de özel anahtar içeren) DNS Sunucusunu barındıran sunucuya yerleştirin.

  2. PowerShell'i yönetici olarak açın ve aşağıdaki komutu çalıştırarak sertifikayı içeri aktarın. <pfxpath> ile .pfx dosyanızın yolunu ve <pfxpassword> ile .pfx dosyanızın parolasını değiştirin.

    Import-PfxCertificate `
        -FilePath "<pfxpath>" `
        -CertStoreLocation "Cert:\LocalMachine\My" `
        -Password (Read-Host -AsSecureString "<pfxpassword>")
    
  3. İstendiğinde sertifikanızın parolasını girin.

  4. Sertifikanın başarıyla içeri aktarıldığını doğrulamak için aşağıdaki komutu çalıştırın ve değerini sertifikanızın konusuyla değiştirin <subject-name> :

    Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }
    

Sertifikayı bağlama

Sertifikayı içeri aktardıktan sonra, DNS Sunucusunun HTTPS bağlantıları için kullanabilmesi için sertifikayı sunucu bağlantı noktasına bağlayın.

  1. Aşağıdaki komutu çalıştırarak yeni bir GUID oluşturun ve bunu bir değişkende depolayın:

    $guid = New-Guid
    
  2. Aşağıdaki komutu çalıştırarak sertifikanızı alın ve bir değişkende depolayın. Sertifikanızın konusuyla <subject-name> değerini değiştirin.

    $cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -match "<subject-name>" }
    
  3. Aşağıdaki komutu çalıştırarak sertifikayı sunucu bağlantı noktasına bağlayın:

    netsh http add sslcert ipport=0.0.0.0:443 certhash=$($cert.Thumbprint) appid="{$guid}"
    

Tavsiye

Belirli bir IP adresinde, tüm adresler yerine, DNS Sunucusu hizmetinin DoH trafiğine yanıt vermesini sağlamak için 0.0.0.0'yi istediğiniz IP adresiyle değiştirin. IP adresi, sertifikanızın SAN'sindeki ana bilgisayara ya eşleşmeli ya da çözümlenmelidir. 443'i farklı bir bağlantı noktası numarasıyla da değiştirebilirsiniz.

Sertifika bağlamasını doğrulama

Sertifikanızın doğru IP adresine ve bağlantı noktasına düzgün şekilde bağlı olduğunu onaylayın.

  1. SSL sertifika bağlamalarını görüntülemek için aşağıdaki komutu çalıştırın:

    netsh http show sslcert
    
  2. Çıkışın IP adresinizi ve bağlantı noktanızı gösterdiğinden emin olun. Ayrıca, sertifika karmasının parmak izinizle eşleşip eşleşmediğini kontrol edin.

Güvenlik duvarı kurallarını yapılandırma

DoH, şifrelenmemiş DNS'den farklı bir TCP bağlantı noktası kullandığından, güvenlik duvarınızı sertifikayı bağlarken belirttiğiniz bağlantı noktasında gelen trafiğe izin verecek şekilde yapılandırmanız gerekir. Varsayılan olarak DoH, URI şablonunda ve sertifika bağlama adımlarında farklı bir bağlantı noktası belirtmediğiniz sürece 443 numaralı TCP bağlantı noktasını kullanır.

Aşağıdaki adımları kullanarak Windows Güvenlik Duvarı'nı yapılandırılan DoH bağlantı noktasında gelen bağlantılara izin verecek şekilde yapılandırın:

  1. Gelen DoH trafiğine izin veren bir güvenlik duvarı kuralı oluşturmak için aşağıdaki komutu çalıştırın:

    New-NetFirewallRule -DisplayName "DNS over HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
    
  2. Aşağıdaki komutu çalıştırarak güvenlik duvarı kuralının oluşturulduğunu doğrulayın:

    Get-NetFirewallRule -DisplayName "DNS over HTTPS"
    

Uyarı

DoH'yi farklı bir bağlantı noktası kullanacak şekilde yapılandırdıysanız 443'yi özel bağlantı noktası numaranızla değiştirin. Donanım güvenlik duvarı veya ağ güvenlik grubu kullanıyorsanız aynı bağlantı noktasında gelen TCP trafiğine de izin verdiğinden emin olun.

DoH'yi etkinleştirme

Sertifikayı bağladıktan ve güvenlik duvarı kurallarını yapılandırdıktan sonra, DNS Sunucunuzda DoH'yi etkinleştirin.

  1. DoH'yi etkinleştirin ve Set-DnsServerEncryptionProtocol komutunu kullanarak URI şablonunu ayarlayın. Sertifikanızdaki SAN'da bulunan ana bilgisayar adı (veya IP adresi) ile dns.contoso.com değerini değiştirin.

    Set-DnsServerEncryptionProtocol -EnableDoh $true -UriTemplate "https://dns.contoso.com:443/dns-query"
    

    Uyarı

    URI şablonundaki bağlantı noktası numarasının sertifikayı bağlarken kullandığınız bağlantı noktası numarasıyla eşleştiğinden emin olun.

  2. Değişiklikleri uygulamak için DNS hizmetini yeniden başlatın:

    Restart-Service -Name DNS
    

DoH yapılandırmasını doğrulama

Bir istemciden yapılandırmayı ve testi doğrulayarak DoH'un düzgün çalışıp çalışmadığını test edin.

  1. Get-DnsServerEncryptionProtocol komutunu kullanarak sunucudaki DoH yapılandırmasını doğrulayın:

    Get-DnsServerEncryptionProtocol
    
  2. Sunucuda Olay Görüntüleyicisi'ni açın ve Uygulamalar ve Hizmetler Günlükleri > DNS Sunucusu'na gidin.

  3. DoH hizmetinin başarıyla başlatıldığını gösteren olay kimliğini 822denetleyin.

İstemci üzerinden DoH testi yapın

DoH'un düzgün çalıştığını onaylamak için DoH özellikli bir istemciden DNS çözümlemesini test edin.

  1. Yapılandırdığınız URI şablonuyla DNS sunucunuz için şifreleme kullanmak üzere bir DoH istemcisi yapılandırın. İstemci yapılandırma adımları için bkz. HTTPS (DoH) üzerinden DNS İstemcisi'nin güvenliğini sağlama.

  2. Yapılandırılan DoH istemcisinden Resolve-DnsName komutunu kullanarak DNS çözümlemesini test edin. değerini, çözümlemek istediğiniz bir etki alanıyla değiştirin contoso.com :

    Resolve-DnsName -Name contoso.com -Type A
    
  3. DNS sorgusu başarıyla çözülür.

DoH etkinliğini daha fazla doğrulamak için, DNS Sunucunuzda DoH'u izlemek için sonraki adım makalesini izleyin.

Sonraki Adımlar