2017-05-08 18 views
0

私はHttpClient-4.0.3を使用しており、すでにサーバーに証明書を追加しています。コマンドは以下のようになります。javax.net.ssl.SSLPeerUnverifiedException:ピアがnetbeansで認証されていません

keytool -import -file "C:\Users\apex\Downloads\RootCABangladesh2016.cer" -keystore "C:\Program Files\Java\jdk1.8.0_131\jre\lib\security\cacerts" -alias "sds certificate" 

しかし、私はまだ下にエラーが発生しています。

TrustManager(X509TrustManager)を追加するという既存の問題を読んだことがありますが、これは解決策ではありません。次のように

例外は次のとおりです。

javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated 
at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:431) 
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128) 
    at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:399) 
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:143) 
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149) 
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108) 
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554) 
    at jsonParser.JSONParser.makeHttpRequest(JSONParser.java:54) 
    at powersms.SendSms.sendSms(SendSms.java:44) 
    at powersms.SendSms.run(SendSms.java:32) 

I have tried this solution . But this is not working for me .

私は、このコマンドで有効期限が切れる日付をチェックしています。

keytool -list -v -alias "sds certificate" -keystore "C:\Program Files\Java\jdk1.8.0_131\jre\lib\security\cacerts" -storepass "changeit" | grep "Valid from:" 

しかし、これは私を示しています

Valid from: Wed Dec 21 16:43:56 BDT 2016 until: Mon Dec 21 16:43:56 BDT 2026 

私はJVMのパラメータを追加しました。

-Djavax.net.debug=ssl:handshake 

は、その後、私はこの出力を行く:

javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated 
    at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:431) 
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128) 
    at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:399) 
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:143) 
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149) 
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108) 
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554) 
    at jsonParser.JSONParser.makeHttpRequest(JSONParser.java:54) 
    at powersms.SendSms.sendSms(SendSms.java:44) 
    at powersms.SendSms.run(SendSms.java:32) 
%% Invalidated: [Session-1, TLS_RSA_WITH_AES_128_CBC_SHA] 
Thread-0, SEND TLSv1 ALERT: fatal, description = certificate_unknown 
Thread-0, WRITE: TLSv1 Alert, length = 2 
Thread-0, called closeSocket() 
Thread-0, handling exception: 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 
Thread-0, IOException in getSession(): 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 
Buffer Error Error converting result java.lang.NullPointerException 
JSON ParserError parsing data org.json.JSONException: A JSONObject text must begin with '{' at character 0 
Json is null 
+0

あなたは正しいです。それは解決策ではありません。解決策は、サーバーの証明書が認定されたCAによって署名されていることを確認するか、それをトラストストアにインポートすることです。サーバーの証明書に別名「sds証明書」が付いている証明書で署名されている場合は、前の手順を実行したようです。 – EJP

+0

どうすればいいですか? –

+0

証明書をインポートしました。 –

答えて

1

あなたがセキュアな(すなわちHTTPS。)URLに接続しようとすると、これはしばらくの間、HttpClientで問題となっています。 HttpClientにはこのクラスEasySSLProtocolSocketFactoryがありますが、自己署名証明書を受け入れるsocketsを作成できます。マニュアルで説明されているように使用してみることができます。EasySSLProtocolSocketFactory

問題が解決するかどうかはわかりません。本番環境で使用することはあまりありません。しかし、あなたは間違いなくそれがどのようになるか見てみることができます!

+0

試した後、私はあなたに知らせます。ご回答ありがとうございます 。 –

+0

多くの多くのありがとう。できます 。 –

+0

助けてくれてうれしい! –

関連する問題