Kendinden İmzalı SSL Sertifikası Nasıl Oluşturulur

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
Check if OpenSSL is installed
OpenSSL’nin kurulu olup olmadığını kontrol edin

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.

Create a certificate signing request
Create a certificate signing request

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
View SSL certificate details

Yazının orjinalini buradan okuyabilirsiniz.