Active Directory’de LDAPS ve NTDS Store: Sertifika Seçim Mekanizmasına Derin Bakış
Active Directory ortamlarında LDAPS (LDAP over SSL/TLS) yapılandırması yapılırken çoğu yönetici sertifikanın doğru şekilde yüklendiğini gördüğünde işin tamamlandığını düşünür. Ancak gerçek hayatta yaşanan birçok LDAPS problemi, sertifikanın geçersiz olmasından değil, Domain Controller’ın beklenenden farklı bir sertifikayı kullanmasından kaynaklanır.
Özellikle yıllardır çalışan ortamlarda otomatik sertifika kayıtları (Auto Enrollment), sertifika yenilemeleri, servis sertifikaları ve farklı PKI projeleri sonucunda bir Domain Controller üzerinde birden fazla Server Authentication sertifikası bulunabilir. Böyle durumlarda Windows yalnızca bir sertifika seçer ve istemcilere onu sunar. Sorun da tam burada başlar.
Bu makalede Windows’un LDAPS sertifikasını nasıl seçtiğini, NTDS Store’un neden kritik öneme sahip olduğunu, GUI ve PowerShell kullanarak sertifikanın NTDS Store’a nasıl yerleştirileceğini ve son olarak kullanılan sertifikanın nasıl doğrulanacağını detaylı şekilde inceleyeceğiz.
Windows LDAPS Sertifikasını Nasıl Seçer?
Bir istemci 636 numaralı port üzerinden bir Domain Controller’a bağlandığında TLS el sıkışması (TLS Handshake) başlar. Bu aşamada Domain Controller istemciye hangi sertifikayı sunacağına karar vermek zorundadır.
Bu seçim işlemi iki aşamada gerçekleşir:
- Validation (Doğrulama)
- Selection (Seçim)
Validation Aşaması
İlk aşamada Windows yalnızca LDAPS gereksinimlerini karşılayan sertifikaları değerlendirir.
Bir sertifikanın LDAPS için uygun kabul edilmesi için aşağıdaki şartları sağlaması gerekir:
- Private Key içermesi
- Server Authentication EKU’suna sahip olması
- EKU OID değerinin 1.3.6.1.5.5.7.3.1 olması
- Subject veya SAN alanlarında Domain Controller isminin bulunması
Bu gereksinimleri karşılamayan sertifikalar doğrudan elenir.
Selection Aşaması
Validation aşamasını geçen birden fazla sertifika olabilir. En çok yanlış anlaşılan konu buradadır. Windows rastgele seçim yapmaz. Birden fazla uygun sertifika bulunduğunda Windows aşağıdaki kriteri kullanır: Geçerlilik süresi en uzun olan sertifika seçilir. Başka bir ifadeyle: NotAfter tarihi en ileri olan sertifika kullanılacaktır.
Örneğin aynı sunucuda iki geçerli LDAPS sertifikası varsa ve biri 2027 yılında, diğeri 2029 yılında sona eriyorsa Windows 2029 yılında sona erecek sertifikayı tercih edecektir.
NTDS Store ve Computer Store Arasındaki Fark
Çoğu admin yalnızca aşağıdaki sertifika deposunu bilir:
Local Computer\Personal
Ancak Domain Controller’larda ek olarak aşağıdaki özel sertifika deposu bulunur:
NTDS\Personal
Bu depo doğrudan Active Directory Domain Services tarafından kullanılır.
LDAPS sertifika seçiminde Windows aşağıdaki öncelik sırasını uygular:
- NTDS\Personal
- Local Computer\Personal
Yani NTDS Store içerisinde uygun bir sertifika varsa Windows başka hiçbir sertifikaya bakmaz.
Bu nedenle Microsoft uzun yıllardır kritik LDAPS senaryolarında kullanılacak sertifikanın NTDS Store içerisinde tutulmasını önermektedir.
Neden NTDS Store Kullanılmalı?
Kurumsal ortamlarda zaman içerisinde aşağıdaki durumlar yaşanır:
- Auto Enrollment ile yeni sertifikalar gelir.
- Sertifikalar yenilenir.
- Yeni PKI altyapıları kurulur.
- Eski sertifikalar silinmez.
- Servis sertifikaları yüklenir.
Sonuç olarak bir Domain Controller üzerinde birden fazla Server Authentication sertifikası birikir. Bu durumda Windows bazen beklenmeyen bir sertifikayı seçebilir. NTDS Store kullanıldığında ise bu belirsizlik tamamen ortadan kalkar.
Çünkü: NTDS Store içindeki sertifika her zaman önceliklidir. Dolayısıyla LDAPS davranışı tamamen kontrol altına alınmış olur.
NTDS Store Kullanmanın Dezavantajı
Her teknolojide olduğu gibi bunun da bir bedeli vardır. Bir sertifika NTDS Store içerisine taşındığında Auto Enrollment artık bu sertifikayı yönetmez.
Bunun anlamı:
- Sertifika otomatik yenilenmez.
- Süre sonuna yaklaşınca manuel işlem gerekir.
- Her Domain Controller ayrıca takip edilmelidir.
Yani NTDS Store daha fazla kontrol sağlar ancak ek operasyonel yük oluşturur.
Sertifika Template’inin Oluşturulması
İlk adım olarak NTDS Store için özel bir sertifika template’i oluşturulmalıdır.
CA sunucusunda:
Certification Authority
Certificate Templates
Manage
menüsü açılır.
Buradan:
Kerberos Authentication
template’i duplicate edilir.
General Sekmesi
Yeni template için örnek isim:
NTDS Store Kerberos Authentication
Compatibility Sekmesi
Hem istemci hem sunucu tarafında mümkün olan en yüksek sürümler seçilir.
Makalede minimum Windows Server 2012 R2 önerilmektedir.
Security Sekmesi
Aşağıdaki grupların Autoenroll yetkileri kaldırılır:
Enterprise Read-only Domain Controllers
Domain Controllers
Enterprise Domain Controllers
Amaç sertifikanın otomatik dağıtılmasını engellemektir.
Request Handling Sekmesi
Aşağıdaki seçenek etkinleştirilir:
Allow private key to be exported
Bu seçenek ileride PFX export işlemi yapabilmek için gereklidir.
Subject Name Sekmesi
Aşağıdaki seçenek seçilir:
Supply in the request
Ayrıca:
Use subject information from existing certificates for auto-enrollment renewal requests
işaretlenmez. Zaten Auto Enrollment kullanılmayacaktır.
Issuance Requirements Sekmesi
Aşağıdaki seçenek aktif edilir:
CA Certificate Manager Approval
Böylece sertifika talepleri manuel onaya düşer.
Yöntem 1: GUI Kullanarak NTDS Store’a Sertifika Yükleme
Makalenin ilk yöntemi GUI kullanılarak yapılmaktadır. Yazar özellikle şu notu düşmektedir: Bu yöntem Windows Server Core üzerinde çalışmaz. Çünkü gerekli sertifika yönetim araçları Server Core üzerinde bulunmamaktadır.
Sertifika Talebi Oluşturma
Domain Controller üzerinde:
certlm.msc
açılır.
Daha sonra:
Personal
All Tasks
Request New Certificate
sihirbazı başlatılır.
Enrollment sırasında aşağıdaki bilgiler girilir:
Subject Name
CN=DC FQDN
SAN Alanları
DC FQDN
Bu örnekler makaledeki laboratuvar ortamına aittir. Siz kendi FQDN bilgilerinizi kullanmalısınız.
Sertifikanın Onaylanması
CA sunucusunda:
Certification Authority > Pending Requests
bölümü açılır.
İlgili talep seçilir ve:
All Tasks > Issue
ile sertifika onaylanır.
Sertifikanın İndirilmesi
Makaledeki önemli bir not:
GUI üzerinden issued edilmiş sertifikayı geri alma yöntemi bulunmamaktadır.
Bu nedenle aşağıdaki komut kullanılır:
certutil -pulse
Bu komut CA ile iletişime geçerek sertifikayı indirir ve Local Computer\My Store içerisine yükler.
Sertifikanın PFX Olarak Export Edilmesi
Daha sonra sertifika:
Personal > Certificates > Export
adımları ile dışarı aktarılır.
Export sırasında:
Yes, export the private key
seçilmelidir.
Ek olarak:
Delete the private key if the export is successful
Enable certificate privacy
işaretlenir. Şifreleme türü olarak:
AES256-SHA256
önerilmektedir.
NTDS Store’un Açılması
MMC çalıştırılır:
mmc.exe
Ardından:
File > Add/Remove Snap-in > Certificates > Service Account > Local Computer > Active Directory Domain Services
seçilerek NTDS Store görünür hale getirilir.
Sertifikanın NTDS Store’a Import Edilmesi
NTDS\Personal > All Tasks > Import
seçilerek oluşturulan PFX dosyası içeri aktarılır. Import işlemi tamamlandığında sertifika artık Active Directory servis sertifika deposuna yüklenmiş oluyor.
Test
Aşağıdaki fonksiyonu kullanarak test ediyoruz.
function Get-CertificateFromTlsHandshake {
param(
[Parameter(Mandatory=$true, Position=0)]
[string] $HostName,
[int] $Port = 443,
[string] $Destination
)
$tcp = New-Object System.Net.Sockets.TcpClient($HostName, $Port)
$state = @{}
$ssl = New-Object System.Net.Security.SslStream($tcp.GetStream(), $false, {
param($Sender, $Certificate, $Chain, $SslPolicyErrors)
$state.cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($Certificate)
return $true
})
$ssl.AuthenticateAsClient($HostName)
$ssl.Dispose()
$tcp.Dispose()
if (-Not [string]::IsNullOrEmpty($Destination)) {
$AsByteStream = if ($PSEdition -eq 'Core') { @{AsByteStream = $true} } else { @{'Encoding' = 'Byte'} }
Set-Content -Path $Destination -Value $cert.GetRawCertData() @AsByteStream
}
return $state.cert
}
Çıktıda, artık LDAPS için kullanılacak olan sertifikanın thumbprint listelenecektir.
Get-CertificateFromTlsHandshake -HostName DC FQDN -Port 636
LDAPS yapılandırması yalnızca geçerli bir sertifika üretmekten ibaret değildir.
Asıl önemli olan:
- Windows’un sertifika seçim mantığını anlamak
- Store önceliklerini bilmek
- Sertifika yaşam döngüsünü yönetmek
- Otomatik yenileme etkilerini değerlendirmek
- Doğru sertifikanın gerçekten kullanıldığını doğrulamaktır
NTDS Store kullanımı sayesinde LDAPS davranışı tamamen öngörülebilir hale gelir. Ancak bunun karşılığında otomatik sertifika yönetiminden vazgeçilmiş olur. Bu nedenle kurumların kendi operasyonel süreçlerini göz önünde bulundurarak karar vermesi gerekir.
Sonuç olarak birden fazla LDAPS sertifikasının bulunduğu ortamlarda NTDS Store, Active Directory’nin hangi sertifikayı kullanacağını kesin olarak belirlemenin en güvenilir yöntemlerinden biridir. Doğru planlandığında LDAPS artık karmaşık ve öngörülemez bir yapı olmaktan çıkar, yönetilebilir ve sürdürülebilir bir servis haline gelir.









Eline sağlık.