4

私が作成した Web サービス (これも cxf ベース) と通信するように cxf ベースのクライアントを構成しようとしています。

Web サービス自体は問題なく動作し、soapUI.

ただし、クライアントは正常にビルドされますが、呼び出し時に SunCertPathBuilderException がスローされます。

これは、信頼できる証明書への有効な証明書チェーンを使用して、サーバーの証明書を含むトラストストアへの有効なパスを提供することに関係しているのではないかと疑って、最初にそのサーバーの証明書を PFX にエクスポートして、プロジェクト自身の証明書にインポートできるようにしました。.jks. これは、何らかの理由でcertmgr.mscエクスポート ユーティリティ ( ) がグレー表示する秘密鍵が必要なため、不可能であることが判明しました。

だから私は別の方向から問題に取り組むことを試みました.soapUIがSSL経由でWebサービスと通信するのに問題がないことを知っています.soapUI用の証明書をインストールしていないので、ルート証明書(CA)で満足する必要があります.そのcacertsファイルに既に存在します。

しかし...http:conduit私のCXFベースのアプリケーションコンテキスト.xmlにはJKSタイプのキーストアが必要です...そのため、キャッチ22の状況にあるようです。

cacertsファイルがJKSタイプでない限り?

cacertsそうでない場合、証明書を からに変換またはエクスポートする方法はあり.jksますか?

これを解決する正しい方法は何ですか?

4

1 に答える 1

3

cacerts ファイルのタイプを確認するには、keytool を使用します。

~> keytool -list -keystore cacerts
Enter keystore password:

*****************  WARNING WARNING WARNING  *****************
* The integrity of the information stored in your keystore  *
* has NOT been verified!  In order to verify its integrity, *
* you must provide your keystore password.                  *
*****************  WARNING WARNING WARNING  *****************

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 77 entries

したがって、答えは次のとおりです。

  1. はい、cacertsJKSタイプです。
  2. cacerts はすでに JKS の形式になっているため、JKS に変換する必要はありません。

  3. これを解決する 1 つの方法はserver.xml、Tomca'tsconfディレクトリ (クライアントのサーバー内) でファイルを検索し、証明書またはトラスト ストアが<Connector要素でどのように指定されているかを調べることです。

クライアントのトラスト ストアに何か新しいものを追加する必要がある場合は.crt、クライアントのサーバーに証明書をインストールするために使用された元のファイルとキー ファイルを見つけます。

それ以外の場合は、クライアントのアプリケーション コンテキスト XML が、soapUI で使用されるのと同じトラスト ストアを指すようにします (動作が証明されているため)。

于 2013-12-26T20:06:29.370 に答える