0

クライアント アプリで Axis 1.4 を使用して SOAP 呼び出しを行っています。HTTPS 経由でサービスを呼び出しています。自己署名証明書を使用するサービスもあれば、認証局によって発行された証明書を使用するサービスもあります。

この回答のコードを使用して、自己署名証明書を信頼ストアに追加しました。私の問題は、トラストストアがすべての呼び出しに使用されていることです-CAからの有効な証明書を持つサーバーへの呼び出しであっても。

自己署名証明書を持つサーバーにのみトラストストアを使用するように Axis に指示する方法はありますか?

4

1 に答える 1

2

これは本質的にここと同じ問題です(ただし、これはクライアント証明書認証のためのものでした)。

独自のソケット ファクトリ クラスを作成し、このプロパティを使用して軸に渡す必要があります。

AxisProperties.setProperty("axis.socketSecureFactory",
    "com.example.MySSLSocketFactory");

( を参照してくださいorg.apache.axis.components.net.SecureSocketFactory。)

既に動作する があるので、SSLContextそれをデフォルトのコンテキストとして設定する代わりに、そこから を作成しjavax.net.ssl.SSLSocketFactory、これを使用して Apache Axis ソケット ファクトリ内にソケットを作成する必要があります。

于 2012-08-20T15:10:29.047 に答える