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.

