1

双方向 SSL 認証を必要とするサーバーにアクセスするために、ブラウザーに正常にインポートした PKCS#12 キーストアがあります。そこにある任意の https URL に完全に到達します。

しかし、Axis 1.4 を使用している場合、同じサーバー内の同じホストから URL にアクセスできません。指定された Axis faultString は次のとおりです。

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX パスの構築に失敗しました: sun.security.provider.certpath.SunCertPathBuilderException: 要求されたターゲットへの有効な証明書パスが見つかりません

私のjavax.net.ssl.{keyStore,keyStorePassword,keyStoreType}プロパティはうまく設定されているようです。

どうすればこれを解決できますか?

4

2 に答える 2

6

クライアントがSSL Webサービスを呼び出してSSL証明書エラーを無視できるようにすることだけが必要な場合は、より簡単な答えに出会いました。(もちろん、これを本番環境で行うことはありません! ですが、テストには便利です。)

Web サービスを呼び出す前に、次のステートメントを挿入するだけです。

System.setProperty("axis.socketSecureFactory",
    "org.apache.axis.components.net.SunFakeTrustSocketFactory");

これは Axis wikiで見つけました。

于 2010-07-07T21:38:35.140 に答える
2

最後に、Andreas SterbenzのInstallCertを使用して証明書を自分のトラストストアにインポートし、ここに示すようにtrustStoreプロパティを設定することでうまくいきました。

于 2010-04-07T18:26:53.323 に答える