SSL sertifikaları, internette kimlik doğrulama ve şifrelemeyi kolaylaştırmak için kullanılır. Normalde, bu sertifikalar Let’s Encrypt gibi güvenilir üçüncü taraf sertifika yetkilileri tarafından verilir. Kendinden imzalı sertifika, herhangi bir üçüncü taraf sertifika yetkilisinden geçmeden alınan sertifikadır.
TLS/SSL, genel sertifika ile özel anahtarın birleşimidir. Özel anahtar, sunucuda veya yük dengeleyicide güvenli bir şekilde depolanırken, sertifikaya herkes tarafından erişilebilir.
Bu eyazıda, OpenSSL aracını kullanarak kendinden imzalı bir SSL sertifikasının nasıl oluşturulacağını açıklıyoruz.
Önkoşullar
Bir Linux makinesi ve sudo ayrıcalıklarına sahip bir kullanıcı.
OpenSSL’yi yükleme
OpenSSL, tüm büyük Linux dağıtımlarında varsayılan olarak mevcuttur. Linux makinenizde OpenSSL’nin kurulu olup olmadığını doğrulamak için aşağıdaki komutu çalıştırın.
$ openssl version
OpenSSL sürüm ayrıntılarını gösteren bir çıktı görmüyorsanız, OpenSSL’yi kurmak için sonraki komutu çalıştırın.
Ubuntu ve Debian tabanlı dağıtımlarda:
$ sudo apt install openssl
Red Hat tabanlı dağıtımlarda:
$ sudo dnf install openssl
$ sudo yum install openssl
Openssl komut sözdizimi şöyledir:
openssl command options arguments
OpenSSL ile Kendinden İmzalı SSL Sertifikası Oluşturun
OpenSSL aracının Linux makinenize yüklendiğini onayladıktan sonra, kendinden imzalı sertifikanızı oluşturmaya devam edebilirsiniz.
Özel bir anahtar oluşturmak için CSR bilgileri gereklidir. Kendinden imzalı bir sertifika oluşturduğumuzdan, bir CSR dosyasının çıktısını almak gerçekten gerekli değildir, yalnızca bir üçüncü taraf sertifika yetkilisine CSR bilgisi gönderiyorsanız gereklidir.
Kendinden imzalı bir SSL sertifikası oluşturmak için şunu yazın:
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout my_key.key -out my_cert.crt
Bu, 365 gün boyunca geçerli olacak, kendinden imzalı bir sertifika oluşturur. Başka bir dizin açıkça belirtilmedikçe, sertifika ve anahtar dosyası geçerli dizinde oluşturulacaktır.
Parametrelerin anlamı şudur:
- req – Sertifika imzalama isteğinde bulunun
- -newkey rsa:4096 – Bu, 4096 bit uzunluğunda bir RSA anahtarı oluşturur. Belirtilmezse, varsayılan olarak 2048 bit uzunluğunda bir anahtar oluşturur
- -keyout – Anahtarın saklanacağı özel anahtar dosya adı
- -out – Yeni sertifikayı depolamak için dosya adını gösterir
- –nodes – Bir parola ile sertifika oluşturma adımını atlayın
- -x509 – X.509 biçiminde bir sertifika oluşturun
- -days – Sertifikanın geçerli olduğu gün sayısı
CSR Alanları:
C= – Ülke adı. (iki harfli kod).
ST= – Eyalet veya İl adı.
L= – Yerellik Adı.
O= – Kuruluşunuzun tam adı.
OU= – Organizasyonal birim ismi.
CN= – Tam nitelikli alan adı.
Mevcut bir özel anahtarı ve CSR’yi kullanarak Kendinden imzalı bir sertifika oluşturun
Mevcut bir özel anahtarınız ve csr’niz olduğu bazı durumlarda, aşağıdaki adımlar yeterli olacaktır.
OpenSSL özel anahtarı oluşturun
İlk olarak, özel anahtarınızı oluşturmak ve kaydetmek için aşağıdaki komutu çalıştırın. Bu özel anahtar, SSL sertifikanızı imzalamak için gereklidir. Aşağıdaki komutta my_key’i kendi değerinize değiştirebilirsiniz.
$ sudo openssl genrsa -out my_key.key
Parametrelerin anlamı.
- genrsa Bir RSA özel anahtarı oluşturun
- -out Çıktı dosyası
Başka bir konum belirtmediğiniz sürece, özel anahtarınız geçerli çalışma dizininde saklanacaktır.
Bir sertifika imzalama isteği oluşturun
Sonraki adım, bir Sertifika İmzalama İsteği (CSR) oluşturmaktır. CSR, normalde imzalaması için bir üçüncü taraf sertifika yetkilisine göndereceğiniz şeydir. Ancak bu durumda, kendiniz imzalayacaksınız.
Bir CSR oluştururken sizden bazı bilgiler vermeniz istenecektir. Enter tuşuna basılarak bazı alanlar boş bırakılabilir.
Şimdi, CSR’nizi oluşturmaya başlamak için aşağıdaki komutu çalıştırın.
$ sudo openssl req -new -key my_key.key -out my_csr.csr
Parametrelerin anlamı.
- req Sertifika imzalama isteğinde bulunun
- -new Yeni istek
- -key Özel anahtar dosyanızın depolandığı yol
- -out Çıktı dosyası
Aşağıdaki resim, KSS oluşturma sürecinin nasıl göründüğünü göstermektedir.
Sertifikanızı kendiniz imzalayın
Aşağıdaki komutu çalıştırdığınızda, 365 gün geçerli olacak, kendinden imzalı bir sertifika oluşturulacaktır.
$ openssl x509 -req -days 365 -in my_csr.csr -signkey my_key.key -out my_cert.crt
Aşağıda parametrelerin ne anlama geldiği yer almaktadır.
- x509 Ortak anahtar sertifikaları oluşturmak ve doğrulamak için uluslararası standart
- -req Sertifika isteğinde bulunun
- -days Sertifikanın geçerlilik süresi kaç gün olmalıdır?
- -in csr dosyanızın depolandığı yol
- –signkey Özel anahtarınızın depolandığı yol
- -out Kendinden imzalı sertifikanız için çıktı dosyası
Sertifikayı doğrulayın
Aşağıdaki komut ile sertifika detaylarını metin formatında kontrol edebilirsiniz.
$ openssl x509 -text -noout -in my_cert.crt
Yazının orjinalini buradan okuyabilirsiniz.
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.