我有使用wlsfullclient并部署在Tomcat上的客户端代码。 该客户端尝试使用部署在Weblogic上的应用程序(通过受保护的 t3s 协议查找EJB bean)。问题是我收到这样的异常:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法执行 找到到达要求目标的有效认证路径;没有可用的路由器 到目的地
在调试模式下一段时间后,创建连接时,我看到带有信任库管理器的SocketFactory。我得出的结论是,客户端用来验证服务器证书的信任库是Java标准信任库,当然我没有合适的证书或CA。
以前,我的客户端已部署在Weblogic(A)上,并且使用了也部署在Weblogic(B)上的应用程序。在那种情况下,一切正常,因为我想在Socket Factory上配置的信任存储就是Weblogic(A)中配置的信任存储,以便验证来自Weblogic(B)中配置的密钥存储的服务器证书。
执行查找的代码如下:
public Object lookup(final String resourceName) {
Object res = null;
try {
res = ic.lookup(resourceName);
} catch (NamingException ex) {
throw new RuntimeException(ex);
}
return res;
}
所以我的问题是-有什么方法可以告诉我的客户使用我想从特定位置提供的自定义SocketFactory和信任库吗?我该如何实施?
任何想法都值得赞赏...