Windows Server 2022’de İki Katmanlı PKI uygulama kılavuzumuzun 1. Bölümünde PKI’nın temellerini tanıttık, laboratuvar yapılandırmasını kurduk ve çevrimdışı Kök CA’yı oluşturduk. Şimdi, Bölüm 2’de, Alt CA’yı yapılandırma konusunu daha derinlemesine inceleyeceğiz.
Giriş
Devam etmeden önce, bağlamı ve kurulumu anlamak için Bölüm 1‘i okuduğunuzdan emin olun. Unutmayın, bu kılavuz sadece test ve öğrenme amaçlıdır. Bu adımların izlenmesinden kaynaklanabilecek herhangi bir zarardan (mali, fiziksel, duygusal vb.) sorumlu tutulamam. PKI karmaşıktır, bu nedenle başlamadan önce konu hakkında kendi araştırmanızı yapmış olmanız çok önemlidir.
Laboratuvar kurulumu ve ek ayrıntılar için kılavuzun 1. Bölümüne bakın.
Alt (Subordinate) CA Yapılandırması
SubCA’mız zaten pwoks.local etki alanının bir parçasıdır. Yapılandırmaya başlayabiliriz. Önemli: Tüm PKI uygulaması tamamlanana kadar Kök CA’yı kapatmayın!
DNS Yapılandırması:
Etki alanı denetleyicinizde, DNS bölgesine (örneğin, pwoks.local) aşağıdaki CNAME kayıtlarını ekleyin:
- OCSP.pwoks.local
- PKI.pwoks.local
Yeni CNAME kaydının diğer adı için OCSP girin (ve ikinci kayıt için PKI girin). CNAME kaydının FQDN alanına, her iki kayıt için de SubCA.pwoks.local (Alt CA’nın adı ve etki alanı) girin.
Yapılandırıldıktan sonra bu şekilde görünmelidir.
Doğru şekilde yapılırsa, bir istemciden pki.pwoks.local veya ocsp.pwoks.local adresine ping atıldığında Alt CA’nın IP’si çözümlenmelidir.
Ardından, bu örnekte SubCA olarak adlandırılan Alt CA’yı yapılandırmaya geçeceğiz.
CAPolicy.inf Dosyasının Oluşturulması:
Tıpkı Kök CA’da olduğu gibi, bir CAPolicy.inf dosyası oluşturun ve Windows’un kök dizinine yerleştirin (C:\Windows\CAPolicy.inf). PEN numaranız varsa, InternalPolicy bölümündeki OID satırını OID=1.3.6.1.4.1.XX (burada XX PEN numaranızdır) olarak değiştirin.
İşte Alt CA için gereken CAPolicy.inf dosyası:
[Version]
Signature=”$Windows NT$”
[PolicyStatementExtension]
Policies = AllIssuancePolicy, InternalPolicy
Critical = FALSE
[AllIssuancePolicy]
OID = 2.5.29.32.0
[InternalPolicy]
OID = 1.2.3.4.1455.67.89.5
Notice = “The Pwoks.local Certification Authority is internal only.”
URL = http://pki.pwoks.local/cps.html
[Certsrv_Server]
RenewalKeyLength = 4096
RenewalValidityPeriod = Years
RenewalValidityPeriodUnits = 5
AlternateSignatureAlgorithm = 0
LoadDefaultTemplates = 1
AD CS Rolünün Yüklenmesi:
Yükleme ve yapılandırma sırasında herhangi bir sorunla karşılaşmamak için Alt CA’da Etki Alanı Yönetici Hesabı (Domain Administrator) olarak oturum açtığınızdan emin olun. Sunucu Yöneticisi’ni açın ve Active Directory Sertifika Hizmetleri rolünü ekleyin.Açılır pencereyi onaylayın, ardından Sertifika Yetkilisi (Certification Authority) ve Sertifika Yetkilisi Web Kaydı (Certification Authority Web Enrollment)’nı seçin.
Web Sunucusu ekranında her şeyi onaylayın ve İleri’ye tıklayın.
Alt CA’nın Yapılandırılması:
Sunucu Yöneticisi’nde, hedef sunucuda Active Directory Sertifika Hizmetlerini Yapılandır’ı seçin. Etki Alanı Yönetici Hesabı‘nı kullanın ve Sertifika Yetkilisi ve Sertifika Yetkilisi Web Kaydı’nı seçin. Aşağıdaki ayarları seçin:
- Certificate Authority Setup Type: Enterprise CA
- Certificate Authority Type: Subordinate CA
- Cryptographic Provider: RSA#Microsoft Software Key Storage Provider
- Key Length: 4096 Bits
- Signature Hash Algorithm: SHA256
- CA Common Name: pwoks-SubCA-CA
- Validity Period: 5 years
Sertifika talep dosyasını Alt Sunucuya kaydedin.
Beklenen sonuç, oluşturulan .req dosyasını, sertifikayı yayınlamak için Kök CA’ya göndermemiz gerektiğidir.
Alt (Subordinate) Sertifikanın Verilmesi:
Kurulumu doğrulamak için Alt CA’da certsrv.msc dosyasını başlatın. Sertifikayı Kök CA’dan alana kadar hizmet durdurulacaktır. Alt CA’da (SubCA), C:\CertData adında bir klasör oluşturun. Kök CA’da oluşturulan .crl ve .crt dosyalarını bu klasöre kopyalayın. .req dosyası da C: sürücüsünün kök dizininde olmalıdır.
.req dosyasını Alt CA’dan Kök CA’ya aktarın. Kök CA’yı ağ üzerinde tutmak tavsiye edilmediğinden bir USB sürücü kullanın.
SubCA üzerinde CertData Sanal Dizini Oluşturma
IIS Yöneticisi’ni açın. Siteler’i genişletin, Varsayılan Web Sitesi’ne sağ tıklayın ve Sanal Dizin Ekle’yi seçin.Takma ad olarak CertData ve fiziksel yol olarak C:\CertData girin. Tamam ile onaylayın. Yeni oluşturulan sanal dizini seçin, Dizin Tarama’ya tıklayın ve etkinleştirin.
Değişiklikleri uygulamak için IIS’yi yeniden başlatın. Ve şimdi kurulumu doğrulamamız gerekiyor. Bir istemci makineden, her şeyin doğru kurulduğundan emin olmak için, http://pki.test.local/CertData/ adresine erişin.
IIS’de Double Escaping Etkinleştirme
Alt CA’daki IIS’de, Varsayılan Web Sitesi’ne gidin. İstek Filtreleme’yi seçin, ardından Özellik Ayarlarını Düzenle’yi seçin. Allow Double Escaping’i etkinleştirin ve Tamam ile onaylayın.
Alt Sertifika Oluşturma
Kök CA’da, Sertifika Yetkilisi konsolunu (certsrv.msc) açın. Kök CA’yı sağ tıklatın, Tüm Görevler’i ve ardından Yeni istek gönder’i seçin.C:\RootCA konumuna gidin ve Alt CA’dan .req dosyasını seçin
Sertifikanın Oluşturulması:
Kök CA’da, talep kimliğine (örneğin, talep kimliği 2) sağ tıklayın ve Tüm Görevler > Yayınla öğesini seçin.Sertifika şimdi Verilen Sertifikalar bölümünde görünecektir.
Geçerlilik süresi 5 yıl ve RSA 4096 ve SHA256 gibi özellikler gibi ayrıntılarını doğrulamak için sertifikaya çift tıklayın.
Sertifikayı Dışa Aktarma:
Sertifika ayrıntılarını görüntülerken Ayrıntılar sekmesine gidin ve Copy to File… a tıklayın. Bu, Sertifika Dışa Aktarma Sihirbazını başlatacaktır. İleri’ye tıklayın. .P7B biçimini seçin ve mümkünse sertifika yolundaki tüm sertifikaları dahil et seçeneğini işaretleyin.
Dosyayı C:\RootCA klasörüne SubordinateCA.p7b olarak kaydedin.
Sertifikanın SubCA’ya Transferi:
SubordinateCA.p7b dosyasını, şirketinizin güvenlik politikalarına bağlı olarak bir USB sürücü veya ağ kullanarak Kök CA’dan Alt CA’ya (SubCA) aktarın. Dosyayı SubCA’daki C:\ dizinine kopyalayın.
CA Sertifikasını Alt CA’ya Yükleme:
Alt CA’da (SubCA), Sertifika Yetkilisi konsolunu (certsrv.msc) açın. Sunucunuza sağ tıklayın, Tüm Görevler > CA Sertifikasını Yükle…. öğesini seçin.Eğer “Sertifika zinciri doğrulanamıyor. Hatayı görmezden gelip devam etmek istiyor musunuz? İptal sunucusu çevrimdışı olduğu için iptal işlevi iptal işlemini denetleyemedi 0x80092013” hatasıyla karşılaşırsanız, Tamam ile onaylayın
Şimdi Hizmeti Başlatın
oppps… Başka bir hata
Bu sorunu düzeltmek için Alt CA’da yönetici olarak bir komut istemi açın.Çevrimdışı iptal kontrollerini yok saymak için aşağıdaki komutu çalıştırın:
certutil –setreg ca\CRLFlags +CRLF_REVCHECK_IGNORE_OFFLINE
Sertifika Yetkilisi hizmetini yeniden başlatmayı deneyinAşağıdaki adımları izleyerek, Kök CA işlem sırasında çevrimdışı olsa bile Alt CA sertifikasını başarıyla düzenleyip yükleyebilmeniz gerekir.
Maksimum Sertifika Yaşını Ayarlama
SubCA tarafından verilen sertifikaların yalnızca bir yıl geçerli olmasını sağlamak için PowerShell’i yönetici olarak açın ve aşağıdaki komutu girin:
certutil.exe -setreg CA\ValidityPeriodUnits 1 certutil.exe -setreg CA\ValidityPeriod “Years” net stop CertSvc net start CertSvc
Bunu yaparken, diğer yapılandırmaları da ayarlayabilirsiniz:
Certutil -setreg CA\CRLPeriodUnits 1 Certutil -setreg CA\CRLPeriod “Weeks” Certutil -setreg CA\CRLDeltaPeriodUnits 1 Certutil -setreg CA\CRLDeltaPeriod “Days” Certutil -setreg CA\CRLOverlapPeriodUnits 12 Certutil -setreg CA\CRLOverlapPeriod “Hours” net stop CertSvc net start CertSvc
IIS’ye geri dönelim. IIS’yi açın ve CertEnroll’u seçin. Ana ekrandan Dizin Tarama (Directory Browsing)’yı seçin ve etkinleştirin.
IIS’yi yeniden başlatın. Bağlantıyı test edin: http://pki.pwoks.local/CertEnroll. Dosyaların üzerine tıklayıp indirebiliyorsanız, sorunsuz bir şekilde yapılandırmışsınız demektir. Eğer çalışmıyorsa, daha önce yapılandırılan çift kaçışı (Double Escaping) kontrol edin.
Denetimi Etkinleştir
Yerel Güvenlik İlkesi’nde hem başarısızlık hem de başarı için denetim nesnesi erişimini etkinleştirin. PowerShell’i yönetici olarak açın ve yazın:
certutil.exe -setreg CA\AuditFilter 127 net stop CertSvc net start CertSvc
Alt CA CDP ve AIA Yapılandırması
CDP ve AIA yapılandırmasını Alt CA’da tekrarlayın. Komut İstemi’ni yönetici olarak çalıştırın ve aşağıdakileri tek satırda yazın:
AIA Yapılandırması:
certutil -setreg CA\CACertPublicationURLs “1:C:\Windows\system32\CertSrv\CertEnroll\%1_%3%4.crt\n2:ldap:///CN=%7,CN=AIA,CN=Public Key Services,CN=Services,%6%11\n2:http://pki.pwoks.local/CertEnroll/%1_%3%4.crt”
CDP Yapılandırması:
certutil -setreg CA\CRLPublicationURLs “65:C:\Windows\system32\CertSrv\CertEnroll\%3%8%9.crl\n79:ldap:///CN=%7%8,CN=%2,CN=CDP,CN=Public Key Services,CN=Services,%6%10\n6:http://pki.pwoks.local/CertEnroll/%3%8%9.crl”
Değerleri kontrol edin:
certutil -getreg CA\CRLPublicationURLs certutil -getreg CA\CACertPublicationURLs
Hizmetleri yeniden başlatın:
net stop CertSvc net start CertSvc
Konfigürasyonları yayınlayın:
certutil -crl
certsrv.msc açın, sunucunun Özellikleri’ni seçin ve Uzantı sekmesine gidin. CDP için http’yi seçin ve “CRL’lere dahil et…” ve “CDP’ye dahil et…” seçeneklerinin seçili olduğundan emin olun. AIA için, http bağlantısı için “AIA uzantısına dahil et” seçeneğinin seçili olduğundan emin olun.
Sertifika Uygulama Beyanı Belgesi (CSPD)
cps.html dosyasını oluşturun ve aşağıdaki kodu içine kopyalayın. Ardından, cps.html dosyasını c:\inetpub\wwwroot adresine kopyalayın:
<!DOCTYPE html>
<html>
<head>
<meta charset=”utf-8″>
<title>Pwoks Domain Certification Practice Statement</title>
</head>
<body>
<h1>Pwoks Domain Certification Practice Statement</h1>
<p>The Pwoks Domain Certification Authority is internal only.</p>
<p>All issued certificates are for internal usage only.</p>
<p>Unauthorized usage strictly forbidden.</p>
</body>
</html>
İhtiyaçlarınıza göre düzenleyebilirsiniz.
Güvenlik Duvarı Kuralları
Güvenlik duvarının açık olduğundan emin olun ve aşağıdaki kuralları etkinleştirin:
Echo Request – ICMPv4-in (ICMP)
World Wide Web Services HTTP Traffic-In TCP/80
World Wide Web Services HTTPS Traffic-In TCP/443
Active Directory’ye Kök CA Ekleme
Kök CA çevrimdışı olacağından, tanınması için onu Active Directory’ye ekleyin. PowerShell’i yönetici olarak çalıştırın ve şunu yazın:
certutil.exe -dspublish ` -f “C:\CertData\RootCA_Pwoks-RootCA-CA.crt” RootCA certutil.exe -addstore ` -f root “C:\CertData\RootCA_Pwoks-RootCA-CA.crt” certutil.exe -addstore ` -f root “C:\CertData\Pwoks-RootCA-CA.crl”
Sorunlarla karşılaşırsanız, yönetici olarak Komut İstemi’ni açın, RootCA CRL ve CRT dosyalarının bulunduğu C:\CertData adresine gidin ve aşağıdaki komutu çalıştırın:
certutil -f -dspublish Pwoks-RootCA-CA.crl
ROOTCA CRL ve CRT dosyalarını C:\CertData’dan C:\Windows\System32\certsrv\CertEnroll’a kopyalayın.
Active Directory Yapılandırması
Etki Alanı Denetleyicinizde Active Directory Siteleri ve Hizmetleri’ni açın. Görünüm’ü seçin ve Show Services Node’u etkinleştirin.Public Key Services dosyasını açın ve AIA’ya tıklayın. Hem SubCA hem de ROOTCA’yı görmelisiniz
CDP altında SubCA (Alt CA) ve RootCA (Çevrimdışı Kök CA) adlı iki alt klasörünüz olmalıdır.
PKI Altyapısının Doğrulanması
SubCA’da pkiview.msc çalıştırın. Çevrimdışı Kök CA ve Alt CA için kırmızı çarpı işareti veya “indirilemiyor” durumu olmadığından emin olun.Sorunlarla karşılaşırsanız, rootca CRL ve CRT dosyalarının C:\Windows\System32\certsrv\CertEnroll’da olduğundan emin olun ve Komut İstemi’nde CRL için ekstra dspublish komutunu çalıştırın. Tebrikler! Artık işlevsel bir İki Katmanlı CA’nız var. Tüm PKI uygulaması tamamlanana kadar Kök CA’yı kapatmamayı unutmayın.