我正在尝试创建一个HTTPRouter操作(在企业服务总线内),该操作将一些XML发送到外部URL。URL是安全的,但是有一个自签名证书,我没有它的密钥库。下面是我编写的用于设置HTTPRouter的XML。
http://pastebin.com/FmFYU5e4
在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操作需要定义一个keystore文件。如前所述,我没有外部端点,因为外部端点不是我自己创建或控制的。有没有办法让HTTPRouter操作在没有定义密钥库的安全端点上工作?我定义端点的方式正确吗?
我们非常感谢您提供的任何帮助!
谢谢
发布于 2011-09-08 21:56:57
如果没有密钥库,就不能有SelfSignedSSLProtocolSocketFactoryBuilder。使用JDK keytool命令创建自签名的文件,并将其放在正确的路径下:
openssl genrsa -out cert.key 1024 && echo -ne "\n\n\n\n\n$HOSTNAME\nroot@$HOSTNAME\n" | openssl req -new -key cert.key -x509 -out cert.crt -days 999
openssl x509 -outform der -in cert.crt -out cert.der
keytool -import -file cert.der -alias root -keystore /cesta/ke/keystore.jks我不确定"root“别名。应该可以,但也许你需要不同的别名。更多详细信息如何配置(参数名):http://www.java2s.com/Open-Source/Java-Document/JBoss/jbossesb-4.7/org/jboss/soa/esb/http/protocol/AbstractProtocolSocketFactoryBuilder.java.htm
https://stackoverflow.com/questions/7349049
复制相似问题