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。)

由于您已经有一个 working SSLContext,而不是将其设置为默认上下文,您需要从中创建一个javax.net.ssl.SSLSocketFactory并使用它在 Apache Axis 套接字工厂中创建套接字。

于 2012-08-20T15:10:29.047 回答