2010-12-02 21 views
3

有沒有辦法在JBoss 4.2中「重新加載」證書信任庫而不重啓?JBoss刷新證書信任庫不重啓

我試圖讓一個EJB調用遠程服務器上的Web服務與SSL,並看到與下面的文章中的SSLHandshakeException類似的問題。我們所要做的是以下內容,涉及三臺機器:一臺JBoss服務器充當服務器B和C的Web服務客戶端。

1)在A上,用戶輸入B的主機名。獲得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

回答

0

有一個EJB添加自簽名證書(用戶交互)到JBoss範圍內使用的信任存儲不是從安全角度來看是個好主意。

更清潔的解決方案是讓Web服務客戶端使用自定義的X509TrustManager實現或自定義SSLSocketFactory。在這兩種情況下,您都可以自行決定要信任哪個證書。這將允許您管理只對該EJB和相應的WS-調用有效的自己的信任存儲。

參見: http://www.howardism.org/Technical/Java/SelfSignedCerts.html