2016-06-17 10 views
0

カスタム証明書を作成して、リモートサーバー上のWeblogicでHTTPSを正常に設定できました。Webクライアントアプリケーションが「要求されたターゲットへの有効な証明書パスを見つけることができません」

クライアント側(weblogicを実行するコンピュータとは別のコンピュータ)で、私はインターネットから降りたInstallCert.javaリソースファイルを使用してサーバー証明書をインストールしました。私はjssecacertsが私JAVA_HOME/JRE/libに/セキュリティ/フォルダにファイルをコピーして、私はそれをテストするために、単純なJAX-WSのスタンドアロンアプリケーションを書いた:

URL url = new URL("https://IP:Port/app/service?wsdl"); 
QName qname = new QName("http://service.org/", "queryservice"); 

HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> hostname.equals(IP)); 

Service service = Service.create(url, qname); 
QueryService port = service.getPort(QueryService.class); 

そして、それは働きました!すばらしいです。素晴らしい。だから私は自分のWebアプリケーションで同じことを実装し、ラップトップのweblogicサーバーにデプロイしました。スタンドアロンのアプリケーションと同じ方法で同じWebサービスにアクセスしようとしましたが、私はsun.security.providerを得ています。 certpath.SunCertPathBuilderException: 要求されたターゲット例外への有効な証明書パスを見つけることができません。

私はいくつかのチュートリアルをチェックして、同じことを続けています。一度、jssecacertsファイルをJAVA_HOME/jre/lib/security/に入れてください。

紛失しているものがありますか?

答えて

0

つまり、weblogicクライアントサーバーはJREのcacertsを、認識されたキーストアとみなし、jssecacertsではないと見なします。私はjssecacertsからサーバー証明書をエクスポートして、それをcacertsにインポートしなければなりませんでした。私が逃した重要なステップです。

これらは、手順は次のとおりです。ここからInstallCert.javaファイルを取得した後

  1. https://github.com/escline/InstallCertのjava InstallCert [ホスト]を実行します。[ポート]を(したい証明書の特定のリスト番号を入力します。このコマンドを実行すると、リストに追加する - そうちょうど1)
  2. ファイル名を指定して実行コマンドは、keytool -exportcert -alias [ホスト] -1 -keystore jssecacerts -storepass changeitと-file [ホスト]
  3. た.cerファイル名を指定して実行次のコマンドを入力します。keytool -importcert -alias [host] -keystore [システムキーストアへのパス] -storepass changeit -file [ホスト] .cer

その後、あなたはうまくいくはずです。システムキーストアはcacertsでなければなりません。

関連する問題