2012-10-18 18 views
10

Yine de, SSLPeer'ın sorunlu Sorunu Doğrulanmadı, ancak kendim imzalı sertifika kullanmıyorum. https kullanarak bir ana bilgisayara bağlanmayı deniyorum. Bu ana bilgisayar doğru bir sertifikaya sahip, ne Firefox ne de HttpsUrlConnection ile ilgili herhangi bir sorun var. Ancak HttpClient kullanarak bağlanmaya çalışırken, korkunç istisna aldım.SSLPeerUnverifiedException: eş kimlik doğrulanmadı

Herhangi bir ipucu? Ya da daha yakından nereye bakacağız?

Teşekkürler!

Düzenleme: ayıklama çıkışı

ana, taşıma istisna:

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

ana, getSession() içinde IOException:

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

cevap

24

sertifikayı gerekir görünüyor JVM'nizin kullandığı güvenilir anahtar deposu. Uygulamanızda farklı bir güvenilir anahtar deposu kullanmıyorsanız, bu "cacerts" olacaktır. "How to Fix 'SSLPeerUnverifiedException: peer not authenticated' Exception in Groovy/Java" adresindeki adım adım kılavuzdan ulaşabilirsiniz.

Kısa versiyon:

  1. aşağıdaki komutu çalıştırın, URL ile $ADDRESS, eksi yerine "https: //":

    echo -n | openssl s_client -connect $ADDRESS:443 | \ 
        sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/$ADDRESS.cert 
    
  2. aşağıdaki komutu çalıştırın, $ALIAS bir yerine Anahtarın kısa adı, , yukarıdaki sertifika adıyla, $PATH JRE'nizdeki uzmanlara giden yol.

    sudo keytool -importcert -alias "$ALIAS" -file /tmp/$ADDRESS.cert \ 
        -keystore $PATH/cacerts -storepass changeit 
    
+0

2 gün. Oy hakkını iyi al. –

İlgili konular