Axis over SSL 和使用 PKCS#12 密钥库的 2 向身份验证
Posted
技术标签:
【中文标题】Axis over SSL 和使用 PKCS#12 密钥库的 2 向身份验证【英文标题】:Axis over SSL and 2-way authentication with a PKCS#12 keystore 【发布时间】:2011-02-05 08:01:15 【问题描述】:我有 PKCS#12 密钥库,已成功将其导入浏览器,用于访问需要 2 路 SSL 身份验证的服务器。可以完美地到达那里的任何 https URL。
但是,在使用 Axis 1.4 时,我无法从同一主机访问同一服务器中的 URL。给定的 Axis faultString 是:
javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径
我的javax.net.ssl.keyStore,keyStorePassword,keyStoreType
属性似乎设置得很好。
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:最后,使用 Andreas Sterbenz 的 InstallCert 将证书导入我自己的信任库,并按照 here 所示设置 trustStore 属性就可以了!
【讨论】:
【参考方案2】:如果您想要的只是让您的客户端能够调用 SSL Web 服务并忽略 SSL 证书错误,那么我遇到了一个更简单的答案。 (当然您不会在生产环境中这样做!,但它肯定对测试很方便。)
只需在调用任何 Web 服务之前添加以下语句:
System.setProperty("axis.socketSecureFactory",
"org.apache.axis.components.net.SunFakeTrustSocketFactory");
我在the Axis wiki 找到了这个。
【讨论】:
以上是关于Axis over SSL 和使用 PKCS#12 密钥库的 2 向身份验证的主要内容,如果未能解决你的问题,请参考以下文章
在 Tomcat 中配置 SSL/TLS 以支持 HTTPS
如何以编程方式在 OpenSSL 中加载 PKCS#12 文件?
Spring http 客户端:httpclient 上的 pkcs12 密钥库和 trustsrtore