2012-04-07 16 views
0

私は秘密鍵で証明書とキーストアを使用してトラストアを作成しました。 次のコードを入力し、trsustoreマネージャーとキーストアマネージャーをロードして、SSLコンテキストのインスタンスを作成しました。双方向SSL :: SSLハンドシェイクエラーエラー

以下のコードは、Webサービスへのリクエストを行うたびに呼び出されます。 私たちはaxis2 APIを使用しています。 GetMethod HTTPGET =新しいGetMethod( "/") もこれと試み

SSLContext context = SSLContext.getInstance(protocolVersion); 
context.init(keyManagers, trustManagers, null); 

SSLSocketFactory socketFactory = context.getSocketFactory(); 

SslContextedSecureProtocolSocketFactory secureProtocolSocketFactory = new SslContextedSecureProtocolSocketFactory(context); 

Protocol authhttps = new Protocol("https", secureProtocolSocketFactory, port); 
HttpClient httpclient = new HttpClient(); 
httpclient.getHostConfiguration().setHost(hostname, port, authhttps); 
GetMethod httpget = new GetMethod("/RTAPService/RTAPService"); 

。それは、エラーの下に私を与え

httpclient.executeMethod(httpget); 

..

org.apache.axis2.AxisFault: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
ホスト名は "qartap.csnet.assurity.sg" であると私のWebサービスのURLは、私が登録したときに " https://qartap.csnet.assurity.sg:8443/RTAPService/RTAPServiceは"

問題があるある

私の "HTTPS"プロトコル、それは私のアプリケーション全体に影響を与える、どういうわけか特定のホストまたは特定のwebservice ..のためにこれらを設定することはできますか?

私はホスト名を使用してこれを設定するか、新しいプロトコル自体を作成したいと思います...私は解決策hereで与えられたアプローチを試みました。しかし、それは私に次の例外を与えました..

生成されたスタブコンストラクタにwebservice URlを渡している間、私は自分のカスタマイズした "myHTTPS"でurlの "HTTPS"を置き換えました。

The system cannot infer the transport information from the myhttps://serverUrl:7001/app/services/RTAPDevService.RTAPDevServiceHttpSoap12Endpoint/ URL. 
+1

を参照することができますか?確かに8433は8443でしょうか? – EJP

+0

"* [...]インターネット上のジャーの1つで利用可能です。"インターネット上には多くのジャーがあります。私はあなたが[this](http://code.google.com/p/jsslutils/wiki/ApacheHttpClientUsage)について話していると思います。 – Bruno

+0

私は上記のコードを含み、クライアントにリリースを与えました.Monay彼らはそれをテストし、それが動作するかどうか、またはエラーである場合、あなたが戻ってきます、私はそこにセキュリティの理由のためにローカル環境からwebserviceにアクセスできません。 ...上記のコードとは別に何かが必要なのかどうか尋ねたいのですが···ポートが8443で、リンクに記載されているjarファイルを使用しています.... –

答えて

0

証明書をcacertsファイルに追加し、同じものをweblogicに指定することで解決しました。 Intelligent証明書チェーンがcacertsファイルに適切にインポートされませんでした。 また、証明書のインポートに関するいくつかの問題がありました。

リンク以下

はあなたがそれをしようとしたときに何が起こった

http://ankursinghal86.blogspot.in/2014/06/authentication-with-client-certificate.html