OpenSSL Kullanımı: Anahtarlar, Sertifikalar ve TLS Testi

Bu makale, OpenSSL kullanarak özel anahtarlar, sertifikalar ve TLS bağlantıları nasıl oluşturulacağını adım adım anlatır. Başlangıçtan ileri düzey kullanıma kadar kapsamlı bilgiler içerir.

L
Linuxize
3 görüntülenme
OpenSSL Kullanımı: Anahtarlar, Sertifikalar ve TLS Testi

Giriş

Web sunucuları, mail sunucuları veya API'ler ile çalışırken TLS sertifikalarıyla karşılaşmanız kaçınılmazdır. Yeni bir hizmet için özel bir anahtar gerekebilir, sertifika imzalama isteği (CSR) bir sertifika otoritesine göndermek için ihtiyacınız olabilir, test ortamı için hızlı bir kendi imzalı sertifika olabilir veya bir uzak sunucunun sunumunu doğrulamak için bir yöntem arıyabilirsiniz. OpenSSL, bu tüm işlemleri tek bir komut satırı araçlarıyla yönetmenizi sağlar.

OpenSSL Nedir?

OpenSSL, Linux üzerinde TLS ve SSL protokollerinin de facto araç setidir. Neredeyse tüm dağıtımlarla birlikte gelir ve anahtar üretimi, sertifika işlemleri, kodlamalar arasında dönüşüm ve bağlantı testleri gibi birçok alt komutu sunar.

Sözdizimi

OpenSSL, her biri kendi seçenekleri olan alt komutlarla çalışır:

openssl komut [komut_seçenekleri] [argümanlar]

Örneğin, openssl genrsa bir RSA anahtarı oluşturur, openssl x509 ise X.509 sertifikalarıyla çalışır. Tüm alt komutları listelemek için:

openssl help

Başlamadan önce kurulu sürümü kontrol edin, çünkü seçenek varsayılanları büyük sürümler arasında değişir:

openssl version

Çıktı örneği:

OpenSSL 3.5.5 27 Jan 2026

OpenSSL 3.x, modern dağıtımlardaki mevcut seri sürümüdür. Aşağıdaki örnekler 3.x hattı için çalışır.

Özel Bir Anahtar Oluşturma

Çoğu sertifika işlemi, özel bir anahtarla başlar. 2048-bit bir RSA anahtarı oluşturmak için:

openssl genrsa -out private.key 2048

Bu, private.key dosyasına şifreli olmayan bir anahtar yazar. 2048-bit anahtar günümüzün pratik minimumudur; daha geniş bir güvenlik marjı istiyorsanız 4096 bit kullanabilirsiniz ve küçük bir performans maliyetinden rahatsız olunmayın.

Sertifika İmzalama İsteği (CSR) Oluşturma

Bir sertifika imzalama isteği (CSR), sertifika otoritesinin imzalı bir sertifika oluşturması için kullanılan bir talep belgesidir. Anahtar ve CSR'yi birlikte oluşturmak için:

openssl req -new -newkey rsa:2048 -noenc -keyout domain.key -out domain.csr

OpenSSL, konu alanlarını sorar. Genel Ad (CN), koruyacağınız ana alan adınızla eşleşmelidir, örneğin example.com. -noenc seçeneği, hizmetin anahtarı okumak için şifre istemeyeceği anlamına gelir.

Kendi İmzalı Bir Sertifika Oluşturma

Yerel geliştirme, iç araçlar veya test amaçları için kendi imzalı sertifikalar, sertifika otoritesine ihtiyaç duymadan kullanabilirsiniz. Bir yıl geçerli olan bir anahtar ve sertifika oluşturmak için:

openssl req -x509 -newkey rsa:2048 -noenc -keyout selfsigned.key -out selfsigned.crt -days 365 -subj "/CN=localhost" -addext "subjectAltName=DNS:localhost,IP:127.0.0.1"

Sertifika İçin Formatları Dönüştürme

Farklı platformlar farklı kodlamaları bekler. OpenSSL, bunları dönüştürmek için kullanılır.

PEM sertifikayı DER (ikili) formatına dönüştürmek:

openssl x509 -in cert.pem -outform der -out cert.der

DER'yi PEM'e geri dönüştürmek:

openssl x509 -in cert.der -inform der -outform pem -out cert.pem

Bir TLS Bağlantısını Test Etme

s_client alt komutu, bir sunucuya TLS bağlantısı açar ve neyi müzakere ettiğini rapor eder. Bu, çalışmayan bir sertifikayı hata ayıklamak için en hızlı yöntemdir:

openssl s_client -connect example.com:443

Çıktı, sertifika zincirini, müzakere edilen protokol ve şifrelemeyi ve doğrulama sonucunu gösterir. Oturumu kapatmak için Ctrl+C basın veya Q yazın.

Hata Ayıklama

Özel Anahtar Yüklenemedi
Şifreli bir anahtar dosyası ve OpenSSL, şifresiz bir anahtar bekliyorsa, veya dosya bozuksa bu hatayı alırsınız. Şifreyi girin veya hizmet şifre sağlayamıyorsa -noenc seçeneği ile anahtarınızı yeniden oluşturun.

Sonuç

OpenSSL, TLS malzemesinin tamamını yönetir: anahtarlar, istekler, sertifikalar, format dönüşümleri ve canlı bağlantı testleri. Sertifikaları sunmaya geçtiğinizde, güvenilir bir sertifika otoritesi kullanın ve sertifikaların süresinin dolmaması için yenilemeyi takvime alın.

Kaynak

Linuxize