gpt4 book ai didi

java - 使用 keystore 文件部署 HTTPRouter 操作时出现问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:36:21 27 4
gpt4 key购买 nike

我正在尝试从自签名证书创建 keystore 和信任库文件,用于部署在 JBoss ESB 中的 HTTPRouter 操作。我使用 openssl 检索感兴趣的证书并使用以下命令生成 keystore 文件和信任库文件:

keytool -import -alias ejb-ssl -file cert.der -keystore cert.truststore
keytool -import -alias ejb-ssl -file cert.der -keystore cert.keystore -trustcacerts

在生成 keystore 和信任库文件之前,我将证书转换为 X509 格式,否则 keytool 实用程序不起作用,并返回消息“输入不是 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.

查看从第三方网络服务检索到的证书,所有 URL 看起来都正常。有谁知道为什么 JBoss 不接受生成的 keystore 中的 URL?我开始为这个而焦头烂额了!

此外,我一直在尝试将 org.apache.commons.httpclient.contrib.ssl.EasySSLProtocolSocketFactory 用于协议(protocol)套接字工厂。使用它时,ESB 部署正常。但是,HTTPRouter 似乎没有将请求发送到第三方 Web 服务。我已经使用 SoapUI 来建立 Web 服务没问题,所以我认为这是我对 HTTPRouter 操作的配置问题。

非常感谢您提供的任何帮助!

最佳答案

我花了很长时间才弄清楚,但结果证明解决方案非常简单。 keystore 文件的路径必须是绝对路径。它不能是相对的!因此,替换

'/META-INF/keystore/cert.keystore' path 

'C:/dev/server/jboss/jboss-as/server/default/deploy/MyEsb.esb/META-INF/keystore/cert.keystore

问题解决了!

当想要在各种不同的环境(Windows 和 Ubuntu)中部署 ESB 时,使用此绝对路径保留属性文件并不总是合适的。我使用 gradle 作为我的构建工具,所以我使用 ReplaceTokens 功能将 keystore token 替换为所需的绝对路径。我想您也可以将 keystore 文件复制到部署目录中,以便所有需要它的 ESB 都可以使用它。

希望这对遇到此问题的其他人有所帮助。最后是一个简单的解决方案,但文档中的任何地方都没有提到要使用绝对路径引用 keystore 文件。但是,这样做解决了我的问题。

谢谢

关于java - 使用 keystore 文件部署 HTTPRouter 操作时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7407003/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com