AXIS Soap Call - 仅对自签名证书使用信任库

时间:2012-08-20 15:01:21

标签: soap ssl axis truststore

我在我的客户端应用程序中使用Axis 1.4进行SOAP调用。我通过HTTPS呼叫服务。某些服务使用自签名证书,其他服务使用证书颁发机构颁发的证书。

我已使用this answer中的代码将自签名证书添加到我的信任存储区。我的问题是信任库被用于所有呼叫 - 甚至是具有来自CA的有效证书的服务器。

有没有告诉Axis仅将信任库用于具有自签名证书的服务器?

1 个答案:

答案 0 :(得分:2)

这与here基本相同(除了这是用于客户端证书身份验证)。

您需要创建自己的套接字工厂类并使用此属性将其传递给轴:

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

(见org.apache.axis.components.net.SecureSocketFactory。)

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