Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
OpenSSL, TLS iletişimi ve kriptografik işlemler için açık kaynaklı kütüphaneler; aynı zamanda sertifika, anahtar ve şifreleme işlemlerini komut satırından yönetmeye yarayan araç takımının adıdır. Web sunucusunun HTTPS bağlantısı kurması, sertifika üretimi veya mevcut sertifikanın incelenmesi gibi işlemlerde kullanılır. OpenSSL bir sertifika değildir; HTTPS protokolünün kendisi de değildir. TLS işlemlerini gerçekleştiren kütüphane ve yardımcı komutlardan oluşur.

OpenSSL ne işe yarar?​


OpenSSL ile özel anahtar ve sertifika imzalama isteği oluşturabilir, sertifika dosyasının ayrıntılarını okuyabilir ve bir sunucunun TLS bağlantısını test edebilirsiniz. Bir HTTPS bağlantısında TLS; veriyi şifreleme, aktarım sırasında değişiklikleri fark etme ve sunucunun kimliğini sertifika ile doğrulama görevlerini üstlenir.

SSL adı yaygın biçimde kullanılmaya devam etse de SSL protokolünün eski sürümleri güvenli kabul edilmez. Güncel web yapılandırmalarında amaç, OpenSSL aracılığıyla eski SSL yerine uygun TLS ayarlarını kullanmaktır.

Somut örnek: HTTPS sertifikasını kontrol etmek​


Bir sunucunun example.com için hangi sertifikayı sunduğunu görmek istiyorsanız, OpenSSL'in kurulu olduğu bir terminalde şu komutu çalıştırabilirsiniz:

Bash:
openssl s_client -connect example.com:443 -servername example.com -verify_hostname example.com -verify_return_error -brief

Bu örnek OpenSSL 3.x komut satırı seçeneklerini kullanır. Bağlantı sonucunda anlaşılan TLS sürümü ve sertifika doğrulama bilgisi görülür. Araç açık kalırsa etkileşimli oturumu Q ve Enter ile sonlandırabilirsiniz. Yerel güven deposu hazırlanmış olmalıdır; özel bir CA kullanılıyorsa ilgili güvenilir CA dosyası ayrıca tanımlanır.

-servername, TLS SNI alanına hedef adı gönderir; kendi başına sertifikadaki adı doğrulamaz. -verify_hostname hedef adın sertifikayla eşleşmesini kontrol eder. -verify_return_error ise doğrulama hatasında bağlantının devam etmesini engeller. Bu son seçenek olmadan test aracı bazı doğrulama hatalarını yazıp bağlantıyı sürdürebilir.

Alan adını yalnız Subject/CN metnine bakarak doğru saymayın; Subject Alternative Name alanı ve gerçek host doğrulaması önemlidir. Yerelde bulunan bir sertifikayı bağlantı kurmadan incelemek için:
Bash:
openssl x509 -in certificate.crt -noout -subject -issuer -dates -ext subjectAltName

Dosya bilgilerini okumak, zincirin güvenilirliğini veya canlı sunucunun aynı dosyayı sunduğunu tek başına kanıtlamaz. DNS, ağ erişimi, SNI, sertifika adı ve yerel CA deposunu birlikte değerlendirin; hata çıktısını gizleyerek yalnız olumlu satırı seçmeyin.

OpenSSL ile hangi dosyalar karıştırılmamalı?​


Aşağıdaki ayrım, hosting işlemlerinde hatalı dosya yüklemeyi önler:
ÖğeGöreviÖrnek kullanım
Özel anahtarSunucunun gizli kriptografik anahtarıdır.Sunucuda korunur, herkese açık paylaşılmaz.
SertifikaAlan adının açık anahtarını ve kimlik bilgilerini taşır.Web sunucusuna tanımlanır.
CA zinciriSertifikanın güvenilir bir otoriteye kadar doğrulanmasına yardımcı olur.Bazı sunucularda ayrı zincir dosyası olarak yüklenir.
OpenSSL komutuBu dosyaları üretir, okur veya test eder.openssl x509, openssl s_client
Örneğin openssl x509 -in certificate.crt -noout -text komutu bir sertifikanın alan adlarını, geçerlilik bilgilerini ve imza ayrıntılarını gösterir. Bu çıktı yalnızca inceleme içindir; sertifikayı sunucuda etkinleştirmek için ayrıca web sunucusunun TLS yapılandırmasına doğru sertifika, özel anahtar ve gerekiyorsa zincir dosyası tanımlanmalıdır.

Kullanım kararı ve sık hatalar​

  1. Sadece sertifikayı inceleyecekseniz openssl x509 kullanın; canlı bağlantıyı test edecekseniz openssl s_client kullanın.
  2. Alan adı tabanlı HTTPS hizmetlerinde -servername seçeneğini ekleyin. Bu seçenek, aynı IP üzerinde birden fazla alan adı barındırılan sunucularda doğru sertifikanın seçilmesini sağlar.
  3. Özel anahtar ile sertifikayı aynı dosya sanmayın. Sertifika paylaşılabilir; özel anahtar korunmalıdır.
  4. Sertifika geçerli görünse bile sunucunun doğru zinciri gönderdiğini ve istemcilerin kullandığı TLS sürümleriyle uyumlu olduğunu ayrıca kontrol edin.
  5. Komut çıktısını yorumlarken yalnızca “bağlantı kuruldu” satırına bakmayın; alan adı, geçerlilik tarihleri, veren otorite ve doğrulama sonucunu birlikte değerlendirin.
Bir web sitesini yönetiyorsanız sonraki adım, OpenSSL ile sertifikayı kontrol ettikten sonra web sunucusunun TLS yapılandırmasını güvenli TLS sürümleri ve doğru sertifika zinciriyle doğrulamaktır. OpenSSL başarılı bir teşhis aracı sağlar; ancak tek başına sunucuyu HTTPS'e geçirmez veya yanlış yapılandırmayı otomatik olarak düzeltmez.

Sık sorulan sorular​

OpenSSL ile self-signed sertifika üretmek tarayıcı güveni sağlar mı?​

Hayır. Sertifika üretmekle istemcinin güvenmesi farklıdır. Kendinden imzalı test sertifikasına güvenmek için kontrollü ortamda açık bir güven kurulumu gerekir; herkese açık web hizmetinde bunu ziyaretçiden beklemek uygun bir sertifika dağıtımı değildir.

.crt ve .pem uzantısı dosyanın içeriğini kesin söyler mi?​

Hayır. Uzantıyı dosyanın gerçek kodlamasıyla karıştırmayın. x509 komutu PEM veya DER girdisini uygun inform seçeneğiyle okuyabilir. Dosya çözümlenemediğinde rastgele uzantı değiştirmek yerine içeriğin sertifika mı, anahtar mı ve hangi biçimde olduğunu doğrulayın.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.