error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca mesajı, bağlantının diğer ucunun gönderilen sertifikayı doğrulayamadığını ve imzalayan CA'yı güvenilir listesinde bulamadığını bildirir. Uyarıyı alan taraf sizsiniz; uyarıyı gönderen karşı taraftır.
Hangi yönde olduğuna bakın
- Sunucu logunda görüyorsanız: istemci sertifikası kullanan (mTLS) bir kurulumda istemcinin sertifikasını imzalayan CA sunucuya tanıtılmamış olabilir; ya da tersine istemci sunucunun CA'sını tanımıyor.
- İstemci tarafında görüyorsanız: sunucu ara sertifikayı göndermiyor veya kök CA istemcinin güven deposunda yok.
Adım adım çözüm
- Sunucunun gönderdiği zinciri görün:
Yalnızca sunucu sertifikası geliyorsa ara sertifikayı yapılandırmaya ekleyin.openssl s_client -connect alanadi.com:443 -servername alanadi.com -showcerts - Nginx'te
ssl_certificatedosyasına sunucu ve ara sertifikaları ekleyin; Apache'deSSLCertificateChainFile(veya yeni sürümlerde birleşik dosya) kullanın. - mTLS kullanıyorsanız istemci CA'sını sunucuya tanıtın:
ssl_client_certificate /etc/nginx/ssl/istemci-ca.pem; ssl_verify_client on; - Kurum içi/özel CA ile çalışıyorsanız o kök CA'yı istemci güven deposuna ekleyin (ör. Debian/Ubuntu'da
/usr/local/share/ca-certificates/altına koyupupdate-ca-certificatesçalıştırın). - Sonucu yeniden test edin:
Verify return code: 0 (ok)görmelisiniz.
Önleme
Sertifikayı aldıktan sonra CA'nın sağladığı ara sertifika paketini mutlaka kurun. Ortak bir kök CA tarafından imzalanmış sertifika istemci uyumluluğu açısından en sorunsuz yoldur: SSL sertifikalarına göz atın, zincir durumunu SSL denetleme aracıyla izleyin.
Ek ipuçları
Uyarıyı istemci sertifikasını sunucuya göndermeyen bir cihaz üretiyorsa, sunucunun gönderdiği CA ad listesini (Acceptable client certificate CA names, s_client çıktısında) inceleyin. İstemci sertifikasının bu listedeki bir CA tarafından imzalanmış olması gerekir.