Selamlar, bu yazıda SCCM ortamımızda PKI konfigürasyonunu nasıl yapabileceğinizi lab ortamım üzerinden aktarmaya çalışacağım. PKI (Public Key Infrastructure) genel olarak kimlik doğrulama için kullanılan bir mekanizmadır. PKI ile sunucu – istemci arasındaki iletişimi güvenli hale getirebiliriz, bunu da en basit şekilde, bir özel (private) anahtar yardımıyla oluşturulan dijital imzanın, şifrelenmiş verinin ya da doğrulama işlemlerinin genel (public) anahtar yardımıyla onaylanması ile sağlanmaktadır. Bu sayede, sadece doğrulanmış kullanıcıların erişebileceği bilgilerin güvenliği sağlanmış olur.
Adım 1: Certification Authority’nin Kurulması ve SCCM IIS Servers Grubunun Oluşturulması
İlk olarak sertifikalarımızı oluşturacağımız ortam olan AD CA’nın kurulması ve sertifikaları request edebilecek IIS sunucularımızı toplayacağımız bir grubu oluşturmamız gerekiyor.
Daha önceki bir yazıda SCCM Software Update Point (SUP) SSL Konfigürasyonu – Gökhan Yıldan (gokhanyildan.com) Software Update point’i HTTPS’e çevirmek üzere bu kurulumları yapmıştım, aşağıya da görselini ilintiliyorum. Active Directory Certificate Services altında Certification Authority’nin kurulu olması gerekecektir.
Tabi bu rolün kurulması ile birlikte post installation adımında ayarlanması gereken birkaç seçenek bulunuyor. Bunlar ile ilgili Install the Certification Authority | Microsoft Learn adresinden destek alabilirsiniz.
AD CA kurulumu tamamlandıktan sonra bir security group oluşturarak ismini SCCM IIS Servers olarak tanımlayabilir ve ardından IIS bulunan tüm SCCM site sistem sunucularını bu grup altına ekleyebiliriz. Buradaki amaç; oluşturacağımız sertifika templatelerinin bu sunuculardan enroll olunabilmesini sağlamak olacaktır. Lab ortamı için tek sunucunuz varsa, grup oluşturmadan sadece makine objesine enroll hakkı tanımlayarak ilerleyebilirsiniz.
Ardından bu gruba IIS koşturulan SCCM Site sistemleri ekliyoruz.
Adım 2: Certificate Template Oluşturma
Certificate templatelerini oluşturmak için ilk olarak DC’imiz üzerinden Certification Authority’yi açıyoruz.
Ardından açılan pencerede Certificate Templates’e sağ tıklayarak manage’i seçiyoruz.
Sonrasında Certificate Template Console açılıyor, buradan Web Server’ı bularak sağ tıklayıp Duplicate Template diyoruz.
Açılan Pencerede Compatibility sekmesinde yer alan seçeneklerin aşağıdaki görseldeki gibi olduğunu kontrol ediyoruz.
Ardından General sekmesine geçerek buradan yeni sertifika template’imizi isimlendiriyoruz.
Request Handling sekmesinde yer alan Allow private key to be exported seçeneğini seçili olmadığından emin oluyoruz.
Ve arkasından Subject Name altındaki Supply in the request seçeneğinin seçili olduğundan emin oluyoruz.
Ardından Security sekmesine gelerek yeni bir obje eklemek adına add diyoruz.
Adım 1’de oluşturduğumuz ve IIS bulunan SCCM sunucularımızı eklediğimiz grubu buraya ekliyoruz ve enroll yetkisi veriyoruz.
Bir sonrası adımda Workstation Authentication certificate template’ini duplicate edebiliriz.
Yine general sekmesinden sertifika template’imize isim veriyoruz, SCCM DP Certificate diyebiliriz. Ek olarak bu sertifikanın süresi dolduğunda yeniden üretilerek dağıtılması gerekeceğinden validity period’u 3 yıl ya da 5 yıl gibi bir değer seçebilirsiniz.
Ardından Request Handling sekmesi altında Allow private key to be exported seçeneğinin seçiyoruz.
Yine aynı şekilde buna da adım 1’de oluşturduğumuz grubu ekliyoruz ve Enroll hakkı veriyoruz.
Ek olarak Domain Computers grubunu da buradan kaldırıyoruz. Ardından OK ile bu sertifika template’i de tamamlıyoruz.
Bir sonraki adımda tekrar Workstation Authentication sertifikasının templicate’ini duplicate ediyoruz.
Yine bu sertifikaya da general sekmesinden isim veriyoruz ve süresini biraz uzatıyoruz.
Ardından Subject Name altından Build from this Active Directory information seçili olduğunu teyit ediyoruz.
Request Handling altından Allow private key to be exported seçeneğinin seçili olmadığını teyit ediyoruz.
Security sekmesi altından Domain Computers grubuna read, enroll ve autoenroll yetkileri veriyoruz ve ardından işlemi tamamlıyoruz.
Bu 3 certificate template’i yeterli olacaktır.
Bu adımda son olarak mmc konsoluna geri dönerek Certificate Templates’e sağ tıklayıp New ve ardından Certificate Template to Issue seçeneğini seçiyoruz.
Açılan pencerede 3 sertifica şablonunu da seçerek işlemi tamamlıyoruz.
Adım 3: Client Auto-Enrollment ve Sertifikaların IIS Sunucularından Talep Edilmesi
Oluşturduğumuz sertifika şablonlarından SCCM Client Certificate şablonuna clientlarımızın auto-enroll olabilmeleri için domain clients’a autoenrollment yetkisi vermiştik, şimdi GPO üzerinden kullanıcıların bu sertifikayı talep etmesini ve otomatik olarak enroll olmalarını sağlayacağız.
Group policy management konsolumuzu açıyoruz. SCCM ile yöneteceğiniz bütün makinelerin auto-enrollment yapmasını isteyeceğimizden, üstten mevcut bir group policy objesi içerisine ya da yeni oluşturarak editliyoruz.
Ardından Computer Configuration > Policies > Windows Settings > Security Settings > Public Key Policies altında Certificate Services Client – Auto-Enrollment seçeneğine sağ tıklayarak properties diyoruz.
Ardından açılan pencereden aşağıda belirtilen seçenekleri işaretleyerek işlemi tamamlıyoruz.
- Configuration Model -> Enabled
- Renew expired certificates, update pending certificates, and remove revoked certificates -> Checked
- Update certificates that use certificate templates -> Checked
Ardından SCCM site server’a ya da policy uygulanacak bir makineye geçerek buradan bir mmc konsolu açıyoruz.
Add/Remove Snap-in… ile snap-in ekliyoruz.
Certificates’i seçiyor ve Computer account ile ilerliyoruz.
Ardından add ile mmc konsolumuza ekliyoruz ve tamamlıyoruz.
Certificates > Personal > Certificates altını açarak kontrol ediyoruz. Burada bazı sertifikalar bulunuyor.
Aynı zamanda bir cmd açarak gpupdate /force yapıyoruz.
Ardından arkadaki mmc konsolumuzu yenilediğimizde auto-enrollment policymiz üzerinden client sertifikamız geliyor.
Bir sonraki adımda, SCCM Site server üzerinden (auto-enrollment’ı zaten buradan denediyseniz aynı yerden) Certificates > Personal‘a sağ tıklayarak All Tasks > Request New Certificate seçeneğini seçiyoruz.
Açılan pencerede ilerliyoruz.
Request işlemini AD’den yapacağız direkt ilerliyoruz.
Oluşturduğumuz certificate template’lerden SCCM DP Certificate ve SCCM IIS Certificate’i seçerek IIS’in altındaki More information is required to enroll … linkine tıklıyoruz.
Ardından alternative name altında DNS’i seçiyoruz.
DNS Name’i seçtikten sonra value olarak düz hostname ve FQDN’i ayrı ayrı ekliyoruz.
Son olarak bir de general sekmesinden friendly name veriyoruz ardından OK seçeneğini seçiyoruz.
IIS sertifikası için gerekli bilgileri girdiğimiz için altındaki link kapandı ve artık enroll yapabiliriz.
Enrollment tamamlandı.
Client, IIS ve DP sertifikalarımızın personal > certificates altına geldiğini gözlemliyoruz.
Ardından DP sertifikamıza sağ tıklıyoruz All Tasks > Export’u seçiyoruz.
Açılan pencerede ilerliyoruz.
Yes, export the private key seçeneğini seçiyoruz.
Bir sonraki adımda varsayılan şekilde ilerleyebiliriz.
Bir şifre belirliyoruz ve ilerliyoruz.
Bir konum seçerek sertifikamızı export ediyoruz.
Export işlemi tamamlandı.
Adım 4: Sertifikaların IIS Site’lara Bind Edilmesi ve WSUS Require SSL Seçimi
Bir sonraki adımda IIS Manager’ı açıyoruz. Burada request ettiğimiz sertifikalardan IIS Cert’i bind edeceğiz.
Sunucumuzu ve onun altındaki sites’ı açarak buradaki Default Web Site’a sağ tıklayıp Edit Bindings… ‘i seçiyoruz.
Açılan site bindings penceresinde yer alan https’e çift tıklayıp ya da bir kez tıklayıp edit diyerek düzenliyoruz.
Ardından SSL Certificate olarak sunucuya request ettiğimiz SCCM IIS Cert‘i seçiyoruz ve OK ile tamamlıyoruz. Açık pencereleri kapatabiliriz.
Sonrasında bir CMD açarak IISReset ile IIS servisine restart atıyoruz.
Ardından bir tarayıcı açarak FQDN ya da direkt hostname’e HTTPS üzerinden erişmeye çalışıyoruz.
IIS altındaki Default Web Site için binding işlemi tamamlandı, şimdi WSUS Administration için binding yapacağız.
IIS Sertifikasını buraya da işlemi bu site için yapıyoruz.
Ardından aşağıdaki WSUS Administration altındaki ApiRemoting30‘un üzerlerine tıklayarak SSL Settings‘e çift tıklayıp ssl settings’i açıyoruz.
Ve Require SSL kutucuğunu işaretleyerek Apply diyoruz.
ApiRemoting30 için Require SSL’i işaretledik, aynı işlemi aşağıdaki diğer 4 servis için de tekrar ediyoruz.
- ApiRemoting30
- ClientWebService
- DssAuthWebService
- ServerSyncWebService
- SimpleAuthWebService
IIS üzerindeki konfigürasyonu bu şekilde tamamladık, son adım olarak C:\Program Files\Update Services\Tools altındaki WsusUtil.exe yi aşağıdaki şekilde çağırıyoruz.
- cd C:\Program Files\Update Services\Tools
- WsusUtil.exe configuressl <SunucuFQDN>
Adım 5: SCCM Üzerindeki Rollerin HTTPS Konfigürasyonlarının Yapılması
Bu zamana kadar yapılan işlemler SCCM konsolu dışında AD, CA, IIS, GPO gibi arkaplandaki diğer bileşenler üzerinden yaptığımız işlemler oldu. Şimdi artık SCCM konsolundan burada yaptığımız konfigürasyonları hayata geçirebiliriz.
Bu noktada SCCM konsolumuzu açarak Administration > Site Configuration > Sites > Mevcut site‘ımıza sağ tıklayıp Properties diyerek site properties’ine ulaşabiliriz.
Ardından açılan pencerede Comunication Security sekmesini seçebiliriz.
Şimdi burada birkaç yöntem bulunmaktadır. Eğer üstten tüm ortamı HTTPS üzerinden konuşmaya zorlamak isteniyorsa direkt HTTPS only ile ilerlenebilir. Ancak CMG(Cloud Management Gateway) ya da IBCM(Internet Based Client Management) gibi bir sistem kullanmak üzere bir konfigürasyon yapılıyorsa, direkt HTTPS or HTTP olarak bırakıp, alt tarafta yer alan Use PKI client certificate (client authentication capability) when available‘ı seçilerek, client’ın bir sertifikası var ise PKI üzerinden haberleşsin şeklinde bir konfigürasyonla ilerlenebilir.
Biz bu lab içerisinde bu şekilde ilerleyeceğiz.
Bir sonraki HTTPS olarak düzenleyeceğimiz rol Distribution Point’in ayarlarına erişmek için Administration > Site Configuration > Server and Site System Roles altındaki bir DP’mizi seçiyoruz. Ardından distribution point rolüne sağ tıklayarak properties diyoruz.
Ardından açılan pencerede Communication sekmesine girerek buradan HTTPS bağlantıyı seçiyoruz. Bu noktada bir altındaki allow intranet-only connections’un tek seçenek olduğunu görmeniz muhtemel, IBCM konfigürasyonunu yaptığınızda buradaki seçeneği düzenleyebilirsiniz.
Ve bu pencerede en altta yer alan Import certificate seçimini seçiyoruz ve bu yazıdaki adım 3’ün sonlarında export ettiğimiz DP Sertifikamızı seçerek şifresini giriyoruz. Ardından apply edip pencereyi kapatıyoruz.
Sırada Management Point var. Yine aynı yerden bu kez Administration > Site Configuration > Server and Site System Roles altındaki bir MP’mizi seçiyoruz ve sağ tıklayarak properties diyoruz.
Buradan da direkt HTTPS seçimi yapılarak apply diyerek pencereyi kapatıyoruz.
Süreci takip etmek için <SCCM Kurulum Klasörü>\Microsoft Configuration Manager\Logs altında sitecomp.log’a bakabiliriz.
Burada MP’nin yeniden kurulumuna başladığı gözüküyor.
Aynı lokasyondaki MPsetup.log’a baktığımızda ise yeniden kurulumun 3010 kodu ile tamamlandığını görüyoruz. 3010 koduna error lookup’dan baktığımzıda ise, kurulumun başarıyla tamamlandığını ancak değişikliğin etkili olabilmesi için reboot atılması gerektiği belirtiliyor. Bu noktada bir yeniden başlatmak gerekecektir.
Bu bu arada süreç sizde direkt tamamlanabilir.
Bir diğer kontrol de herhangi bir client üzerinden ya da sunucunun kendisinden MP’ye ulaşılabildiğini test etmek olacaktır.
Kontrol edilecek adres: https://SCCMSiteServer/SMS_MP/.SMS_AUT?MPLIST
Hatta sertifika olmadığı için .xml’i görememekteyiz, eğer DP sertifikasını sunucuya import edip tarayıcıyı kapatıp açarsanız aşağıdaki şekilde .xml içeriği de gözükecektir.
Son olarak software update point’i de SSL üzerinden haberleşecek şekilde ayarlamak üzere Administration > Site Configuration > Server and Site System Roles altındaki Software update point‘e sağ tıklayarak properties’e giriyoruz.
Ardından buradan Require SSL communication to the WSUS server seçeneğini seçiyoruz ve buradaki işlem de tamamlanıyor. IIS üzerindeki konfigürasyonu adım 4’de yapmıştık.
Bu konfigürasyonun durumu da <SCCM Kurulum Klasörü>\Microsoft Configuration Manager\Logs altında WCM.log dosyasından kontrol edilebilir.
Tabi bu işlemler başka DP, MP ve SUP’unuz var ise onlarda da yapılması gerekecektir.
Adım 6: Client Üzerinden Kontroller
Bu adımda bir client makine üzerinden yaptığımız konfigürasyonunun sorunsuz bir şekilde çalıştığını kontrol edeceğiz.
Client makinemiz üzerinden bir mmc konsolu açarak Certificates snap-in’ini computer account olarak ekliyoruz.
Görebileceğiniz üzere auto-enrollment üzerinden sertifikamız oluşmuş. Henüz sertifika gözükmüyorsa gpupdate /force yapabilirsiniz ya da GPO’nun uygulandığı OU’yu kontrol edebilirsiniz.
Sertifika kontrol edildikten sonra Denetim Masası > Configuration Manager altında general menüsünden client certificate’in PKI’a geçtiğini kontrol edebilirsiniz.
Henüz geçmediyse Eylemler (Actions) altından makine ilkesi döngüsünü çalıştırabilir ve bir süre bekleyebilirsiniz. Ek olarak ClientIDManagerStartup.log üzerinden de durumu kontrol edebilirsiniz.
Teşekkürler.
Kaynaklar ve Ek Makaleler:
Example PKI certificate deployment – Configuration Manager | Microsoft Learn
SCCM Internet Based Client Management | System Center Dudes
How PKI Works ? – Technical Blog | REBELADMIN
Install the Certification Authority | Microsoft Learn
Plan for PKI certificates – Configuration Manager | Microsoft Learn