设置为使用Apache Axis信任所有证书

时间:2019-10-28 14:24:40

标签: java ssl tomcat https certificate

我正在使用自动生成的(wsdl2Java)org.apache.axis.client连接到外部Web服务并获取一些数据。通过SSL进行连接,但其证书已过期。他们确实获得了新证书,尽管以某种方式,因为我获得了PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed,他们的旧证书已缓存在我的服务器上。而且我只会在服务器上收到此错误,当我在本地计算机上运行Web应用程序时,它运行正常,它们的当前证书也被获取。杀死所有Java进程并在服务器上重新启动Tomcat无效,因此我试图将其设置为始终信任证书,但这也不起作用。

AxisProperties.setProperty("org.apache.axis.components.net.SecureSocketFactory", "org.apache.axis.components.net.SunFakeTrustSocketFactory");AxisProperties.setProperty("axis.socketSecureFactory", "org.apache.axis.components.net.SunFakeTrustSocketFactory");应该可以根据我在互联网上看到的内容工作。我仍然遇到相同的错误。

我可以为每次通话设置它吗?我有org.apache.axis.client.Call并在其上调用invoke。

org.apache.axis.client.Call _call = createCall();
_call.setOperation(_operations[1]);
_call.setUseSOAPAction(true);
_call.setSOAPActionURI("");
_call.setEncodingStyle(null);
_call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
_call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
_call.setOperationName(new javax.xml.namespace.QName("", "CreateOperation"));

setRequestHeaders(_call);
setAttachments(_call);
try {        
    java.lang.Object _resp = _call.invoke(new java.lang.Object[] {requestArg});

    if (_resp instanceof java.rmi.RemoteException) {
        throw (java.rmi.RemoteException)_resp;
    }
...

0 个答案:

没有答案