我在客户端应用程序中使用Axis1.4进行SOAP调用。我正在通过HTTPS调用服务。一些服务使用自签名证书,其他服务使用由证书颁发机构颁发的证书。
我已经使用this answer中的代码将自签名证书添加到我的信任存储区。我的问题是,信任库用于所有调用-甚至是对具有来自CA的有效证书的服务器的调用。
有没有什么方法可以告诉Axis只对具有自签名证书的服务器使用信任库?
发布于 2012-08-20 23:10:29
它本质上与here存在相同的问题(除了这是用于客户端证书身份验证)。
您需要创建自己的套接字工厂类,并使用以下属性将其传递给axis:
AxisProperties.setProperty("axis.socketSecureFactory",
"com.example.MySSLSocketFactory");(请参阅org.apache.axis.components.net.SecureSocketFactory。)
由于您已经有了一个工作的SSLContext,而不是将其设置为默认上下文,因此需要从它创建一个javax.net.ssl.SSLSocketFactory,并使用它在Apache Axis套接字工厂中创建套接字。
https://stackoverflow.com/questions/12040121
复制相似问题