Bu hata, sunucunun bağlantıyı kurmak için istemciden bir sertifika talep ettiği ama tarayıcının uygun bir istemci sertifikası sunamadığı durumda görünür. Yani sunucu karşılıklı TLS (mTLS) bekliyor olabilir.
Belirtiler
- Tarayıcıda
ERR_SSL_CLIENT_AUTH_CERT_NEEDEDhatası çıkar veya sertifika seçme penceresi açılıp sonuçsuz kalır. - Başka cihazda ya da şirket bilgisayarında sayfa açılırken kişisel cihazda açılmaz.
- Sorun genellikle kurum içi uygulamalar, bankacılık servisleri veya API'lerle ortaya çıkar.
Olası nedenler
- Hedef sunucu istemci sertifikasını zorunlu tutuyor ve cihazınızda bu sertifika kurulu değil.
- Sertifika kurulu ama sunucunun güvendiği CA'dan değil.
- Sertifika süresi dolmuş veya özel anahtarı dışa aktarılamayan ya da kaybolan bir akıllı karta/token'a bağlı.
- Yanlış konuma (örneğin Yerel Makine yerine başka bir depoya) kurulmuş.
- Sunucu yapılandırması gereğinden geniş kapsamda
ssl_verify_client onkullanıyor.
İstemci tarafı çözüm
- Sertifikayı aldığınız yerden (BT birimi veya hizmet sağlayıcı) PFX/P12 dosyasını ve parolasını edinin.
- Windows'ta dosyaya çift tıklayıp Kişisel depoya aktarın; Chrome işletim sisteminin sertifika deposunu kullanır.
- Sertifikanın süresini
certmgr.msciçinden kontrol edin. - Tarayıcıyı tamamen kapatıp açın; sertifika seçme penceresinde ilgili sertifikayı seçin.
- Komut satırıyla doğrulamak için:
curl -v --cert istemci.pem --key istemci.key https://hedef.ornek.com/
Sunucu sahibiyseniz
Yalnızca gerçekten mTLS gereken yollarda istemci sertifikasını zorunlu tutun. Nginx'te aşağıdaki gibi seçenekli doğrulama, genel kullanıcıların engellenmesini önler:
ssl_client_certificate /etc/ssl/istemci-ca.pem;
ssl_verify_client optional;
# ayrıcalıklı yolda:
# if ($ssl_client_verify != SUCCESS) { return 403; }
Önleme
- İstemci sertifikalarının bitiş tarihlerini önceden duyurun.
- Sunucunun kabul ettiği CA listesini dokümante edin.
- Genel web sayfası için doğru ve güvenilir bir sunucu sertifikası kullanın; istemci sertifikası yalnızca kimlik doğrulama içindir.
Sunucunun istemci sertifikası isteyip istemediğini SSL Checker ve openssl s_client çıktısındaki "Acceptable client certificate CA names" bölümünden anlayabilirsiniz.