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 bulmakjavax 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
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!
&Quot;DLL yük çözme başarısız oldu: %1...
Test başarısız ekleme: Erişim Yasak Ha...
Web dağıtımı görev başarısız yapı...
Android Hello world yüklemek için Başa...
Böyle büyük mükafat fırlatma işlemi ba...