OpenSSL komut satırı, bir TLS sorununu tarayıcıdan bağımsız olarak, ham haliyle görmenin en hızlı yoludur. Aşağıdaki komutlar günlük teşhislerin büyük kısmını karşılar.
Sunucuya bağlanıp sertifikayı görme
openssl s_client -connect ornek.com:443 -servername ornek.com -showcerts
-servername SNI değerini gönderir; bunu atlarsanız yanlış sanal sunucunun sertifikası dönebilir. Çıktıda "Verify return code: 0 (ok)" satırı, zincirin doğrulandığını gösterir.
Sertifika içeriğini okuma
openssl s_client -connect ornek.com:443 -servername ornek.com </dev/null 2>/dev/null \
| openssl x509 -noout -subject -issuer -dates -ext subjectAltName
Bu komut konu, veren CA, geçerlilik tarihleri ve SAN listesini özetler.
Protokol ve cipher testleri
openssl s_client -connect ornek.com:443 -tls1_2
openssl s_client -connect ornek.com:443 -tls1_3
openssl s_client -connect ornek.com:443 -cipher 'ECDHE-RSA-AES128-GCM-SHA256'
El sıkışma başarısızsa sunucu o protokolü veya cipher'ı desteklemiyor demektir. Kurulu OpenSSL sürümü eski bir protokol bayrağını artık tanımayabilir.
Dosya eşleşmesi ve zincir doğrulama
openssl x509 -noout -modulus -in sertifika.crt | openssl md5
openssl rsa -noout -modulus -in anahtar.key | openssl md5
openssl verify -CAfile ara_kok.pem sertifika.crt
İki md5 çıktısı aynıysa sertifika ve anahtar eşleşir. RSA dışındaki anahtarlarda bu yöntem geçerli değildir; genel anahtar karşılaştırması yapın. openssl verify ise zincirin kök CA'ya kadar doğru kurulduğunu sınar.
İpuçları
- Bir komutun hata verdiği satırı (ör.
unable to get local issuer certificate) sorun arama terimi olarak kullanın. - Ara sertifikaların sunucu tarafından sunulduğundan emin olun.
- Sonuçları grafik arayüzle karşılaştırmak için SSL kontrol aracı uygundur.
Hata mesajlarının açıklaması için SSL sorun giderme sayfasına bakabilirsiniz.