Almış olduğumuz SSL sertifikasını farklı sunucularda, işletim sistemlerinde veya uygulamalarda kullanmamız gerekebilir. Bunun için bir takım dönüşümler yapılması gerekir. Bu dönüşümleri openssl uygulaması ile yaparız. Bu dönüşümleri her zaman güncel olan openssl uygulaması kullanılmasını tavsiye ederim. Ayrıca uygulamanın windows sürümleri de mevcuttur.
Bir otoriteden (globalsign, SSL.com, sectigo gibi ) alınan SSL sertifikası e-posta yada site üzerinde ( -----BEGIN CERTIFICATE-----
ve -----END CERTIFICATE-----
) arasında bulunan harf ve rakamlardan oluşan bir dizi ile verilebildiği gibi, direk crt yada cer uzantılı olarakta verilebilmektedir. Private key bigiside aynı şekilde yanında verilir. Eğer açık olarak gelen bir sertifika ise bu bilgi kopyalanıp bir editöre yapıştırılıp uzantısı crt olarak kaydedilerek sertifikamız kullanılabilir duruma gelir. Aynı şekilde private key bilgiside alınarak uzantısı key olarak kaydedilip kullanılır duruma gelir.
Elimize gelen bu sertifika yanında sertifikayı veren otoritenin kendi sertifikası (ca) sertifikası da bulunur. Eğer otorite sertifikası yok ise ilgili sitesinden indirilerek işlemleri yapabiliriz.
Dönüşümleri PFX dosya biçimine dönüştürerek başlamak istiyorum. PFX dosya Windows işletim sistemlerinde kullanılan bir sertifika paketidir. Wilcard sertifikaları birden fazla sunucu ve uygulamalarda kullanmak üzere paket haline getirmeye ve ilgili sunuculara rahat bir şekilde kurmaya yaramaktadır.
Openssl yüklenilen klasöre (genelde bin klasörü içine) sertifika dosyamızı, key dosyamızı ve otoriteden alınan ca dosyasını kopyalayarak işleme başlıyoruz.
Sertifikamızın adı certificate.crt veya certificate.cer Key dosyasının adı privateKey.key Otorite Sertifikası adı CaCert.crt olsun. Bu dosya isimlerini siz nasıl verirseniz koda o şekilde yazmalısınız
PFX Format
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
Burada openssl uygulaması ile certificate.pfx adında bir sertifika paketi oluşturacaktır. İşlem sırasında bir parola vermemizi isteyecektir. Bu verilen parola ile paket Windows işletim sisteminde yüklerken kullanılacaktır.
PEM Format
En yaygın olarak kullanılan sertifika formatıdır. PEM sertifikasının .cer , .crt, .pem, .key gibi uzantıları mevcuttur. PEM sertifikası Base64 ile kodlanmış ASCII dosyasıdır. Apache ve benzeri sunucular PEM formatındaki sertifikaları kullanırlar. PEM sertifikası ve private key aynı dosya altında bulunabilirler. Fakat apache gibi çoğu platform, sertifikaların ve private key’in farklı dosyalarda bulunmasını beklerler.
Cer uzantılı dosyayı Pem uzantılı dosyaya çevirmek için aşağıdaki komut dizileri kullanılır.
openssl x509 -in certificate.cer -out certificate.pem –outform PEM
DER Format
Pem ASCII formatında bir sertifika dosyası iken DER uzantılı sertifika dosyaları binary formatındadır. Bazı zamanlarda bu formattaki sertifikaların uzantısı .der olsa da çoğu zaman .cer uzantısı kullanılır. Cer uzantılı bir sertifikanın DER formatında mı yoksa PEM formatında mı anlamak için sertifikayı notepad benzeri bir editör ile açıp “BEGIN………..END” ifadesini incelemek gerekir. DER formatı genellikle Java platformlarında kullanılır.
Pem uzantılı dosyayı der uzantılı dosyaya çevirmek için asağıdaki komut dizileri kullanılır.
openssl x509 -outform der -in certificate.pem -out certificate.der
DER Formattan PEM formata Dönüşüm
openssl x509 -in certificate.der -inform DER -out certificate.pem -outform PEM
P7B – PKCS#7 Format
P7B formatı genellikle Base64 ASCII formatında saklanır ve .p7b veya .p7c uzantılı sertifika dosyalarıdır. P7B formatındaki sertifikalar “ —–BEGIN PKCS7—–” ve “—–END PKCS7—–“ ifadelerini içerir. P7B uzantılı bir dosya sadece sertifika veya sertifika çiftlerini içerir, private key’i içermez. Microsoft Windows ve Java Tomcat dâhil olmak üzere çeşitli platformlar P7B formatını desteklerler.
Cer uzantılı dosyayı P7B formatlı bir sertifikaya çevirmek için aşağıdaki komut dizileri kullanılır.
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile cacert.cer
PFX – PKCS#12 Format
PFX formatı; sunucu sertfikasını, herhangi bir intermediate sertifikayı (sertifika otoritesine ait public key’i içeren sertifika örnek olarak verilebilir) ve private keyi şifrelenebilir bir dosya içinde binary formatında saklar. PFX dosyalarının uzantıları genellikle .pfx veya .p12 şeklindedir. PFX dosyaları, Windows makinelere sertifika ve private key’leri yüklemek veya windows makinelerden sertifika ve private key’leri çekmek için kullanılan dosyalardır. Anahtar çiftlerini ve CA’ye ait root sertifikayı birlikte içeren sertifika dosyası oluşturmak ve oluşturulan sertifikanın başka bir yere yüklenmesi sırasında ek bir güvenlik önlemi olarak bir şifre eklenmesini sağlamak amacıyla pfx formatının kullanımı tercih sebebidir.
openssl pkcs12 -export -in certificate.cer -inkey www. private.key -out certificate.pfx -certfile cacert.cer
SSL PFX Dosyasını Crt ve Key Olarak Çıkarmak
PFX dosya içinden key ve crt dosyalarını ayrı ayrı çıkartarak kullanabiliriz. Bunun için
Öncelikle crt dosyasını çıkartalım. Şifre sorunca pfx dosyasının şifresini giriniz.
openssl pkcs12 -in server.pfx -clcerts -nokeys -out server,.tr.crt
Crt hazır. key çıkaralım, yine şifre soracak yazıp enter a basıyoruz;
openssl pkcs12 -in server.pfx -nocerts -out server.key
Şimdi key dosyası çıktı fakat şifreli halde çıktı bunu açık bir hale getirmek için ise;
openssl rsa -in server.key -out acik.server.key
SSL eğitimini udemy üzerinden alabilirsiniz.