SSL Sertifikası

Java TrustStore PKIX Hatası

PKIX path building failed hatası Java'nın zinciri kuramadığını gösterir. keytool ile güven deposuna kök eklemeyi ve hata ayıklamayı öğrenin.

Java uygulamaları sertifika zincirini kendi güven deposuyla (cacerts) doğrular. Zincir kurulamazsa şu ünlü hata çıkar:

javax.net.ssl.SSLHandshakeException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target

Olası nedenler

  • Sunucu ara sertifikayı göndermiyor; Java eksik halkayı kendisi indirmez.
  • Bağlanılan sunucunun CA'sı JDK'nın güven deposunda yok (özel CA, kendinden imzalı sertifika, eski JDK).
  • Kurumsal proxy trafiği kendi sertifikasıyla yeniden imzalıyor.
  • Uygulama, sistemin değil başka bir JDK'nın cacerts dosyasını kullanıyor.

Teşhis

El sıkışma ayrıntılarını görmek için JVM'e şu seçeneği verin:

java -Djavax.net.debug=ssl:handshake -jar uygulama.jar

Hangi sertifikaların geldiğini ve hangisinin reddedildiğini çıktıdan izleyin. Ayrıca sunucu tarafında openssl s_client -showcerts ile zincirin tam olup olmadığına bakın.

Çözüm

  1. Sunucu zinciri eksikse sorunu sunucuda düzeltin (ara sertifikayı ekleyin); en doğru çözüm budur.
  2. Özel CA kullanılıyorsa kök sertifikayı güven deposuna ekleyin (Java 9 ve üzerinde yol $JAVA_HOME/lib/security/cacerts, eski sürümlerde jre/lib/security/cacerts):
keytool -importcert -trustcacerts -alias kurum-ca -file kok.crt -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit

Buradaki changeit varsayılan parolayı ifade eder; ortamınızda değiştirilmiş olabilir.

  1. Sistem deposunu değiştirmek istemiyorsanız uygulamaya özel bir truststore tanımlayın: -Djavax.net.ssl.trustStore=/yol/truststore.jks ve -Djavax.net.ssl.trustStorePassword=parola.
  2. JDK sürümünüz çok eskiyse güncel bir sürüme geçmek yeni kökleri de kazandırır.

Uyarı

Doğrulamayı kodla devre dışı bırakan "hepsine güven" çözümlerinden kaçının; bağlantıyı güvensiz kılar. Sunucu tarafını SSL kontrol aracıyla doğrulayın, yeni sertifika için SSL sertifikalarına göz atın.

Bu makale faydalı oldu mu?

Makale Ara

Sertifika Doğrulama Hataları

Yardıma mı İhtiyacınız Var?

Aradığınızı bulamadıysanız destek ekibimiz size yardımcı olabilir.

Destek Talebi Aç