我正在嘗試創建一個將某些XML發送到外部URL的HTTPRouter操作(在一個esb中)。該URL是安全的,但有一個自簽名證書,我沒有密鑰庫。以下是我正在編寫的用於設置HTTPRouter的XML。JBoss ESB:將HTTPRouter與安全端點一起使用並且沒有密鑰庫
在ht.props文件只有一個屬性集。我將協議套接字工廠定義爲SelfSignedSSLProtocolSocketFactoryBuilder。
#HttpProtocol Config...
protocol-socket-factory=org.jboss.soa.esb.http.protocol.SelfSignedSSLProtocolSocketFactoryBuilder
當我部署了ESB,我收到以下錯誤:
org.jboss.soa.esb.ConfigurationException: Failed to locate keystore '/keystore'
關於這個專題的各種論壇圍繞閱讀,似乎HTTPRouter行動要定義一個密鑰存儲文件。如前所述,我沒有一個外部端點不是由我自己創建或控制的。有沒有辦法讓HTTPRouter動作適用於沒有定義密鑰庫的安全端點?我正在定義端點的方式是否正確?
提供的任何幫助非常感謝!
感謝
嗨lzap。感謝您的迴應。在您指定的命令中,您引用了cert.key和cert.crt。這些是由命令產生的嗎?另外,您指定的HOSTNAME字符串是我嘗試指向的URL?正如我在我的描述中所說的,我擁有的只是外部URL。我沒有它的證書文件。 – ScreamingMage
好吧,我已經解決了這個問題。我確實需要創建密鑰庫和信任庫文件。我首先必須從我嘗試POST的URL中提取.cer文件。一旦我有了這個文件,我就可以創建密鑰庫和信任文件。我遵循下面的教程中概述的步驟: http://www.techbrainwave.com/?p=953 此外,而不是使用SelfSignedSSLProtocolSocketFactoryBuilder,我用EasySSLProtocolSocketFactory在apache httpclient中找到。我目前得到了100個代碼,但我似乎正在進步! 感謝lpaz突出顯示了對密鑰庫和信任庫文件的需求。 – ScreamingMage
對不起,取消訂單。我很高興你能解決這個問題。 – lzap