我試圖從自簽名證書中創建一個密鑰庫和信任庫文件,用於在JBoss ESB中部署的HTTPRouter操作。我使用OpenSSL的檢索感興趣的證書和生成一個密鑰存儲文件和信任庫文件用下面的命令:使用密鑰庫文件部署HTTPRouter操作的問題
keytool -import -alias ejb-ssl -file cert.der -keystore cert.truststore
keytool -import -alias ejb-ssl -file cert.der -keystore cert.keystore -trustcacerts
之前生成的密鑰庫和信任文件,我轉換證書X509格式,否則密鑰工具實用程序不起作用,並返回一個異常消息'輸入不是x.509證書'異常。要轉換感興趣的證書,我使用下面的命令:
openssl x509 -in cert.cer -outform DER -out cert.der
我再複製這些文件到我的ESB的「esbcontent/META-INF」文件夾。下面是我設置爲HTTPRouter行動
#Configurators
configurators=HttpProtocol
#HttpProtocol Config...
protocol-socket-factory=org.jboss.soa.esb.http.protocol.SelfSignedSSLProtocolSocketFactoryBuilder
keystore=/META-INF/keystore/cert.keystore
keystore-passw=password
truststore=/META-INF/truststore/cert.truststore
truststore-passw=password
屬性。當我部署ESB我收到以下錯誤:
Caused by: org.jboss.soa.esb.ConfigurationException: Invalid 'keystore' config. Must be valid URL.
望着從第三方Web服務檢索到的證書,所有網址看起來好。有沒有人有任何想法爲什麼JBoss不會接受生成的密鑰庫中的URL?我開始在這一個上撕掉我的頭髮!
此外,我一直在嘗試使用協議套接字工廠的org.apache.commons.httpclient.contrib.ssl.EasySSLProtocolSocketFactory。當使用這個時,ESB部署OK。但是,HTTPRouter似乎沒有將請求發送到第三方Web服務。我已經使用SoapUI來建立Web服務,因此我認爲這是我配置HTTPRouter操作的一個問題。
提供的任何幫助非常appreaciated!