OpenSSLSSL ve TLS protokollerinin açık kaynak kodlu bir uygulamasıdır. C programlama dili ile yazılmış master kütüphane temelli kriptografik fonksiyonları uygular. OpenSSL’i farklı programlama dilleriyle derlemek ve kullanabilmek için geliştirilmiş ara yazılımlar da bulunmaktadır.

OpenSSL, Open Source (açık kaynak bir şifreleme kütüphanesi ve SSL/TLS protokollerini uygulayan bir araçtır. SSL/TLS protokolleri, internet üzerinde güvenli bir şekilde veri iletişimi yapmak için kullanılan standartlardır.

SSL/TLS bağlantılarının kurulması ve yönetimi için gerekli olan altyapıyı sağlar.

Bu işlevler sırasında, şifreleme anahtarlarının oluşturulması, dijital sertifikaların yönetimi, şifreleme algoritmalarının seçimi, random sayı üretimi, verilerin şifrelenmesi ve çözümlenmesi gibi işlemler yer alır.

OpenSSL, Open source bir proje olarak geliştirildiği için, kullanıcılar tarafından kolayca özelleştirilebilir ve farklı platformlara yayınlanabilir. Bu nedenle, birçok farklı işletim sistemi ve platformda kullanılabilir.

SSL/TLS protokollerinin haricinde , diğer şifreleme protokollerini de uygulayabilir. Bu protokoller arasında, S/MIME, HTTPS, SSH ve IPSec gibi protokoller bulunur.

OpenSSL, birçok farklı Platformda kullanılır. Örneğin, web sunucular, e-posta sunucuları, VPN yazılımları, veritabanı sistemleri ve diğer uygulamalar, OpenSSL’i kullanarak güvenli veri ve data iletişimi sağlanmaktadır.

Open SSL kurulumu

Aşağıdaki adrese gidiyoruz ve son veriyon paketimizi işletim sistemimize uygun olan sürümde indiriyoruz.

https://slproweb.com/products/Win32OpenSSL.html
Open SSL Pfx to Crt 2
Open SSL Pfx to Crt 3
Open SSL Pfx to Crt 4

C:\Program Files\OpenSSL-Win64

İndirdiğimiz paketin kurulumunu dizin değiştirmeden Next diyerek tamamlıyoruz.

Open SSL Parametreleri

ParametreAçıklama
-nocertsSunucu tarafından gönderilen sertifikaları doğrulamaz.
-nokeysÖzel anahtarı kullanmaz.
-clcertsİstemci sertifikalarını (client certificates) kullanmaz.
-nodesÖzel anahtarı şifrelemez.
-daysSertifikanın geçerlilik süresini gün cinsinden belirtir.
-subjSertifikanın “konusu” (subject) bilgilerini belirtir.
-reqBir sertifika istek dosyası (certificate request file) oluşturur.
-CAfileSertifika yetkilisinin (CA) sertifikasının dosya yolunu belirtir.
-CAkeySertifika yetkilisinin (CA) özel anahtarının dosya yolunu belirtir.
-crlSertifika iptal listesinin (certificate revocation list) dosya yolunu belirtir.
-showcertsBir sunucuya bağlanırken sunucunun sunduğu tüm sertifikaları gösterir.
-keyÖzel anahtar dosyasının adını belirtir.
-outSertifika dosyasının adını belirtir.
-hashSertifika için kullanılan karma algoritmasını belirtir.
-mdSertifika için kullanılan karma algoritmasını belirtir (aynı -hash ile).
-nameSertifika için kullanılan uzantıların adını belirtir.
-extfileSertifika için kullanılan uzantıların bulunduğu dosya adını belirtir.
-configOpenSSL ayar dosyasının adını belirtir.

Dosya uzantı formatları

UzantıNe İşe YararNerede Kullanılır
PEMPrivacy Enhanced MailE-posta ve diğer veri türleri için şifreleme ve dijital imza.E-posta, S/MIME, PGP
CERCertificateX.509 formatında bir sertifika dosyası.Web sunucuları, VPN’ler, TLS/SSL
DERDistinguished Encoding RulesASN.1 kodlama formatında bir sertifika dosyası.Akıllı kartlar, gömülü sistemler
CRTCertificateX.509 formatında bir sertifika dosyası (CER ile aynı).Web sunucuları, VPN’ler, TLS/SSL
PFXPersonal Information ExchangeŞifrelenmiş bir PKCS#12 dosyası. Sertifika, özel anahtar ve diğer bilgiler içerir.E-posta, mobil uygulamalar, IoT cihazları
P12Personal Information ExchangePFX ile aynı.E-posta, mobil uygulamalar, IoT cihazları
JKSJava Key StoreJava uygulamaları tarafından kullanılan anahtarlık dosyası. Sertifikalar ve özel anahtarlar içerir.Java web uygulamaları, Java mobil uygulamaları
KEYPrivate KeyÖzel anahtar dosyası.Şifreleme, dijital imza, SSH
  • PEM dosyaları genellikle base64 kodlu metin içerir.
  • CER ve DER dosyaları genellikle ikili kod içerir.
  • PFX ve P12 dosyaları şifrelenir ve bir parola ile korunur.
  • JKS dosyaları Java Keytool ile yönetilebilir.
  • KEY dosyaları RSA, DSA, ECDSA gibi farklı algoritmalarda olabilir.

PFX to .key & .crt file

Ben “C:\temp” adında bir folder oluşturuyorum ve dosyalarımı bunun içinde oluşturacağım. Dizinimin altında abc.pfx dosyamı kopyalıyorum.

openssl pkcs12 –in [yourfile.pfx] -out [drlive.key] -nodes

Yukarıdaki komutu kendi dizin yapımıza göre düzenliyoruz, ilk olarak uygulamanın olduğu dizine gidiyoruz.

C:\Program Files\OpenSSL-Win64\bin

openssl.exe pkcs12 –in C:\temp\abc.pfx -out C:\temp\abc_privateKey.key -nodes

Yukarıdaki işlemden sonra çıktımız aşağıdaki gibi olacak. Bu işlemle “.key” dosyamızı oluşturduk.

Open SSL Pfx to Crt 5

Şimdi .crt dosyamızı oluşturmak için aşağıdaki komutu giriyoruz.

openssl pkcs12 –in [yourfile.pfx] -clcerts -nokeys -out [drlive.crt]

#Aynı .pfx dosyasını .crt dosyasına ayrıştırıyoruz.

openssl.exe pkcs12 –in C:\temp\abc.pfx -clcerts -nokeys -out C:\temp\abc_cert.crt

Open SSL Pfx to Crt 6

İşlemlerimiz tamamlandığında dizinimiz içerisinde aşağıdaki şekilde sertifka dosyalarımızı görüyor olacağız.

Open SSL Pfx to Crt 7

Convert .pfx file to .pem format

#Bu komutla bir PFX’in özel anahtarını bir PEM dosyasına çıkartabiliriz:

openssl pkcs12 -in C:\temp\abc.pfx -nocerts -out C:\temp\abc.pem

Open SSL Pfx to Crt 8

#Exporting the certificate only (pem dosyasına şifre koymanıza gerek kalmaz)

openssl pkcs12 –in C:\temp\abc.pfx -clcerts -nokeys -out C:\temp\abc.pem

#Metot2

openssl pkcs12 –in filename.pfx -out cert.pem -nodes

open ssli kullanarak istediğiniz türde sertifika parçalama/birleştirme ve oluştrma işlemlerini kolaylıkla yapabilirsiniz.