JBoss重新加载证书信任库而不重启

时间:2010-12-02 02:54:54

标签: java-ee jboss self-signed truststore sslhandshakeexception

有没有办法在不重启的情况下“重新加载”JBoss 4.2中的证书信任库?

我正在尝试使用ssl在远程服务器上调用EJB服务,并且看到类似SSLHandshakeException的问题,如下文所述。我们正在做的是以下内容并涉及三台机器,一台JBoss服务器充当服务器B和C的Web服务客户端。

1)在A上,用户输入B的主机名.A上的机器获得B的自签名证书并将其安装在信任库中(通过外部shell脚本)。

2)SSL套接字连接到B,它指向第一次尝试时加载证书存储区。连接成功,一切正常。

3)再次在A上,用户执行与2中相同的操作,shell脚本获取C的证书并将其安装到trusstore。但是,在与C的连接连接上,显示(通过启用javax.net.debug = ssl)信任库不会“重新加载”并且它找不到C的证书,我们收到SSLHandshakeException。

重新启动JBoss后,加载了“更新的”信任库,并且与B和C的连接都有效。

想在没有重启JBoss的情况下这样做并收集上述方案是不正确的。如果有人可以指出我正确的方式来动态更新信任库的文档,那将非常感激。

Problem calling web service from within JBOSS EJB Service

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

从安全角度来看,让一个EJB向Jboss范围内使用的信任存储添加自签名证书(在用户交互上)并不是一个好主意。

更简洁的解决方案是让您的Webservice客户端使用自定义X509TrustManager实现,或者使用自定义SSLSocketFactory。在这两种情况下,您都可以自行决定要信任的证书。这将允许您管理自己的信任存储,该信任存储仅对该EJB和相应的WS调用有效。

另见: http://www.howardism.org/Technical/Java/SelfSignedCerts.html