2016-07-07 2 views
0

httpsリンクからxmlのテキストを読んでいます。ブラウザで開いた場合、証明書を確認するよう求められます。証明書の承認が必要なときにJavaのUrlから読む

URL oracle = new URL(url); //url is a String 
URLConnection yc = oracle.openConnection(); 
BufferedReader inputReader = new BufferedReader(new InputStreamReader(yc.getInputStream())); 

inputReaderの3行目にIOExceptionが発生します。私は証明書の承認を必要とせず、うまく動作する単純なhttpリンク上で同じコードを試しました。私は何を変えなければならないか知っていますか?

おかげ

答えて

0

あなたは例外のトレースが含まれていないが、あなたが証明書で認証されていないため、確実にSSLサーバーは接続を拒否しています。

JVMで設定されたクライアント証明書を使用してhttps接続を作成する必要があります。これは、双方向SSL認証と呼ばれている

あなたが作成) )ストア(PKCS12またはJKS)を作成する必要があり、クライアント証明書

2の秘密鍵が含まれる(このtutorialを確認してください) trustore(同じファイルでも可)サーバー証明書の公開鍵を含めます

3)そのサーバーへのSSL接続でキーストアとトラストストアを使用するようにJVMを構成します。

-Djavax.net.ssl.keyStoreType=pkcs12 
-Djavax.net.ssl.keyStore=client.p12 
-Djavax.net.ssl.keyStorePassword=whatever 
-Djavax.net.ssl.trustStoreType=jks 
-Djavax.net.ssl.trustStore=client-truststore.jks 
-Djavax.net.ssl.trustStorePassword=whatever 

https://stackoverflow.com/a/1710543/6371459

完全な例を確認してください
関連する問題