SORU
8 Mart 2012, PERŞEMBE


Javax çözme.net.ssl.SSLHandshakeException: güneş.güvenlik.doğrulayıcı.ValidatorException: yol yapı Hatası başarısız PKİX?

Bu hatayı alıyorum

ayrıntılı iletisi güneş.güvenlik.doğrulayıcı.ValidatorException: PKİX yolu yapı başarısız oldu:
güneş.güvenlik.sağlayıcı.certpath.SunCertPathBuilderException: % istenen hedef için geçerli bir sertifika yolu bulmak

javax neden.net.ssl.SSLHandshakeException: güneş.güvenlik.doğrulayıcı.ValidatorException: PKİX yol inşa başarısız oldu: güneş.güvenlik.sağlayıcı.certpath.SunCertPathBuilderException: geçerli bir sertifika yolu bulamıyor hedef istedi

Web sunucusu olarak tomcat 6 kullanıyorum. iki https aynı makinede differte noktası farklı tomcat üzerinde ancak yüklü webbapplication var. Söyle App1(port 8443) App2(port 443). App1 App2 bağlanır .App1 10 ** bağlandığında hata yukarıda. Bu farklı birçok çözümler rastladım çok yaygın bir hata olduğunu çok iyi biliyorum forumlar ve siteler. Hem tomcat ı server.xml aşağıda giriş var.e

keystoreFile="c:/.keystore" 
keystorePass="changeit"

Her site sertifika da bu sebeple app2 tarafından verilen uyg1 jvm güvenilir bir mağaza değil diyor. Bu aynı vururum yorgun zaman da doğru gibi görünüyor IE URL tarayıcı, çalışır(ısınma, bu web sitesinin güvenlik sertifikasıyla ilgili bir sorun Var. bu web sitesine devam et) derim burada Ama aynı url java istemci(benim durumumda) çarptı. Yukarıdaki hatayı alıyorum. Trustore koymak için bu yüzden bu ağaç seçenekleri denedim.e

Seçenek1

System.setProperty("javax.net.ssl.trustStore", "C:/.keystore");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");

Seçenek 2 Ortamda aşağıda değişken ayarı

CATALINA_OPTS -- param name
-Djavax.net.ssl.trustStore=C:\.keystore -Djavax.net.ssl.trustStorePassword=changeit ---param value

Option3 Ortamda aşağıda değişken ayarı

JAVA_OPTS -- param name
-Djavax.net.ssl.trustStore=C:\.keystore -Djavax.net.ssl.trustStorePassword=changeit ---param value

Ama hiçbir şey işe yaramadı.

En son ne çalıştıjava yaklaşım Pascal Thivent tarafından How to handle invalid SSL certificates with Apache HttpClient? önerilen yürütülüyor.e program yürütme İnstallCert.

Ama bu yaklaşım devbox kurulum için gayet iyi ama üretim ortamında kullanabilirsiniz.

Merak ediyorum neden üç yaklaşım yukarıda ayarlayarak truststore app2 sunucu ve aynı değerleri server.xml aynı değerleri bahsettiğim zaman işe yaramadı

System.setProperty("javax.net.ssl.trustStore", "C:/.keystore") and System.setProperty("javax.net.ssl.trustStorePassword", "changeit");

app1 programda.

Daha fazla bilgi için bu bağlantıyı yapıyorum

URL url = new URL(urlStr);

URLConnection conn = url.openConnection();

if (conn instanceof HttpsURLConnection) {

  HttpsURLConnection conn1 = (HttpsURLConnection) url.openConnection();

  conn1.setHostnameVerifier(new HostnameVerifier() {
    public boolean verify(String hostname, SSLSession session) {
      return true;
    }
  });

  reply.load(conn1.getInputStream());

CEVAP
8 Mart 2012, PERŞEMBE


Sertifika eklemek gerekirApp2kullanılan JVM bu anahtar deposu dosyası %JAVA_HOME%\lib\security\cacerts yer almaktadır.

İlk eğer sertifikanız zaten aşağıdaki komutu çalıştırarak deposundaki olup olmadığını kontrol edebilirsiniz: 22* *(bir parola sağlamanız gerek yok)

Eğer sertifika yoksa tarayıcınız ile indirmek istiyor ve aşağıdaki komutu ile anahtar deposu için ekleyebilirsiniz:

keytool -import -noprompt -trustcacerts -alias <AliasName> -file <certificate> -keystore <KeystoreFile> -storepass <Password>

Afer ilk komutu tekrar eğer sertifika eklendi olmadığını kontrol etmek için çalıştırabilirsiniz alma.

Sun/Oracle bilgisi here bulunabilir.

Bu yardımcı oldu umut! İyi Eğlenceler!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Artorius FullPower

    Artorius Ful

    29 Temmuz 2007
  • Jason Parker

    Jason Parker

    14 Aralık 2009
  • Project Mooncircle

    Project Moon

    6 Aralık 2009