Java Axis over SSL和具有PKCS#12密钥库的双向身份验证

Java Axis over SSL和具有PKCS#12密钥库的双向身份验证,java,ssl,axis,keystore,pkcs#12,Java,Ssl,Axis,Keystore,Pkcs#12,我在浏览器中成功导入了PKCS#12密钥库,用于访问需要双向SSL身份验证的服务器。可以完美地访问那里的任何https URL 但是,在使用Axis 1.4时,我无法访问同一服务器中的URL以及来自同一主机的URL。给定的轴故障字符串为: javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径生成失败:sun.security.provider.certpath.SunCertPat

我在浏览器中成功导入了PKCS#12密钥库,用于访问需要双向SSL身份验证的服务器。可以完美地访问那里的任何https URL

但是,在使用Axis 1.4时,我无法访问同一服务器中的URL以及来自同一主机的URL。给定的轴故障字符串为:

javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径生成失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效证书路径

我的
javax.net.ssl.{keyStore、keyStorePassword、keyStoreType}
属性似乎设置得很好


我如何解决这个问题?

最后,使用Andreas Sterbenz将证书导入到我自己的信任库中,并按照指示设置信任库属性,这样做了

最后,使用Andreas Sterbenz将证书导入到我自己的信任库中,并按照指示设置信任库属性,这样做了

如果您只希望客户端能够调用SSL web服务并忽略SSL证书错误,那么我找到了一个更简单的答案。(当然,您不会在生产环境中执行此操作,但它确实便于测试。)

在调用任何web服务之前,只需执行以下语句:

System.setProperty("axis.socketSecureFactory",
    "org.apache.axis.components.net.SunFakeTrustSocketFactory");

我在。

找到了一个更简单的答案,如果您希望您的客户端能够调用SSL web服务并忽略SSL证书错误。(当然,您不会在生产环境中执行此操作,但它确实便于测试。)

在调用任何web服务之前,只需执行以下语句:

System.setProperty("axis.socketSecureFactory",
    "org.apache.axis.components.net.SunFakeTrustSocketFactory");
我在一家商店找到了这个