AD Certificate Services Configuration
Active Directory Certificate Services (AD CS), Microsoft’un Windows Server işletim sistemlerinde sunduğu bir rol servisidir ve dijital sertifika altyapısını (PKI – Public Key Infrastructure) kurmak ve yönetmek için kullanılır. Bir önceki makalede kurulumu gerçekleştirmiştik. Bu kısımda ise yapılandırma adımlarını inceleyeceğiz.
Sertikamızı almak için öncelikle bir CSR dosyası elde etmemiz gerekmektedir. CSR, Certificate Signing Request (Sertifika İmzalama Talebi) anlamına gelir. Bir sertifika otoritesine (CA – Certificate Authority) sertifika almak için gönderilen taleptir.
CSR dosyası genellikle şunları içerir:
- ? Common Name (CN): Web sitenizin alan adı (örn. .mail.example.com veya *.example.com)
- ? Subject Alternative Name (SAN): Ek alan adları (örn. mail.example.com, *.example.com)
- ? Kurum adı (O), Ülke (C), Şehir (L), vb.
- ? Public Key (sadece açık anahtar)
- ? CSR içeriği, özel anahtar ile imzalanır.
Sonuç olarak CSR, bir CA'ya (örneğin: Microsoft CA, Let's Encrypt, GlobalSign, vs.) gönderilerek, karşılığında geçerli, imzalanmış bir sertifika alınır. CSR oluşturmak için bir çok yöntem vardır. Ben OpenSSL ile devam edeceğim. OpenSSL https://slproweb.com/products/Win32OpenSSL.html linkinden windows versiyonunu kurabilirsiniz.
OpenSSL ile CSR oluşturduğunda, SAN alanı varsayılan olarak eklenmez. Buda CA (sertifika otoritesi) sadece CN'yi görmesine sebep olur ve tarayıcı sertifikayı geçersiz sayar. Bu yüzden eğer özel olarak özelleştirilmiş bir dosya olmaz ise CSR’de SAN alanı eksik olur.
Aşağıdaki çıktıyı bir not defterine yapıştıp *.example.com yazan yerleri kendinize göre özelleştirin. Dosyanın adını openssl-san.cnf olarak değiştirin ve openssl yüklü olduğu konumu atın.
[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn
[dn]
CN = *.example.com
[req_ext]
subjectAltName = @alt_names
[alt_names]
DNS.1 = *.example.com
OpenSSL yüklü olduğu dizinde komut satırını yönetici olarak çalıştırıp aşağıdaki komutu tetikleyin. Bu işlemden sonra elinizde wildcard.csr ve wildcard.key adında 2 dosya olacak.
openssl req -new -nodes -out wildcard.csr -keyout wildcard.key -config openssl-san.cnf

Bu işlemden sonra artık csr dosyası ile sertifika talebinde bulunabiliriz. Bunun için MC CA sunucunuzun yayın yaptığın http://msca_ipaddr/certsrv/ adresine giderek Request a certificate butonuna basarak devam edelim.

Açılan pencerede advanced certificate request butonuna tıklayın. Submit a Certificate Request or Renewal Request kısmında, Saved Request kısmına aldığınız CSR dosyasının içeriğini kopyalayın. Certificate Template kısmından Web Server seçeneğini işaretleyerek Submit butonuna basın.

Certificate Issued kısmında size verilen sertifikayı artık indirebilirsiniz. Bu kısımda sorun yaşamamak adına chain sertifikayı indirmeniz gerekmektedir. Bunun içinde ara sertifikada mevcut olduğu için güvenli bir şekilde bağlantı kurulur ve hata almazssınız.

Günün sonunda elimizde aşağıdaki gib key ve sertifika dosyası olacaktır.

Sertifika Dönüştürme
Sertifika dönüştürme işlemi, dijital sertifikaları bir formattan başka bir formata çevirme sürecidir. Bu işlem, genellikle sistemler veya yazılımlar farklı formatlarda sertifikaları desteklediği için yapılır.
? Neden Sertifika Dönüştürülür?
Çünkü farklı sistem ve yazılımlar farklı sertifika formatlarını kullanır:
| Yazılım / Sunucu | Tercih Ettiği Format |
|---|---|
| Windows / IIS | .pfx, .cer, .p7b |
| Apache / Nginx | .crt, .key, .pem |
| Java Keystore | .jks, .p12 |
| OpenSSL tabanlı sistemler | .pem |
? Yaygın Sertifika Formatları ve Açıklamaları
| Format | Açıklama |
|---|---|
.crt / .cer |
X.509 sertifikası (genellikle DER veya PEM formatında) |
.pem |
Base64 kodlu, insan tarafından okunabilir sertifika (veya key) |
.pfx / .p12 |
PKCS#12 formatı – sertifika + private key birlikte |
.p7b |
PKCS#7 – sadece sertifikalar (key içermez) |
.key |
Özel anahtar dosyası |
.csr |
Sertifika İstek Dosyası (Certificate Signing Request) |
Artık key ve sertifika dosyamız hazır. Aşağıdaki .p7b (PKCS#7) sertifikasını .pfx, .pem ve .crt formatlarına dönüştürmek için gereken tüm OpenSSL komutlarını bulabilirsiniz.
.p7b → .crt
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.crt
.p7b → .pem
openssl pkcs7 -print_certs -in certificate.p7b -out certs.pem
Sonrasında key ile birleştirmek isterseniz. CMD açarak aşağıdaki komutu çalıştırmanız yeterli olacaktır.
type cert.pem cert.key > full.pem
.p7b → .pfx
.p7b dosyasını doğrudan .pfx (PKCS#12) formatına dönüştürmek için, OpenSSL ile aşağıdaki adımları izleyebilirsiniz. Ancak .p7b dosyası özel anahtar (private key) içermez. Bu nedenle .pfx oluşturmak için .key dosyası da kesinlikle gereklidir.
Komut sonunda .pfx dosyası için bir parola girmen istenir. Bu parola pfx açmak için kullanılır (örneğin IIS’e yüklerken) Bu yüzden güvenli olmalıdır, not etmeyi unutmayın.
İlk olarak .p7b → .pem dosyasına dönüştürün.
openssl pkcs7 -print_certs -in certificate.p7b -out certificate_chain.pem
İkinci olarak .pem + .key birleştirerek .pfx oluşturun.
openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate_chain.pem
Sertifikanın Uygulanması
Benim kullanacağım sistemde crt ve key dosyasını ayrı olarak istiyor. Bu yüzden crt olarak çıkarıyorum.

Sistemlere göre sertifikaları uygulama şekliniz değişebilir. Ben crt ve key dosyamı load balancer üzerinden yüklüyorum.

Kontrol ettiğim zaman işlemin başarılı olduğunu görebilirsiniz.

Eğer güven hatası alırsanız mmc konsol üzerinden root sertifikanın bilgisayarda yüklü olduğunu doğrulamanız gerekmektedir.
