2012-12-05 86 views
1

我正在嘗試創建與activemq(使用Spring 3.1,ActiveMQ 5.5和Camel 10.0)的SSL連接。我遇到了可怕的SSL握手異常。我可以使用jks中的證書連接openssl s_client。因此,我試圖弄清楚我的密鑰庫是否存在問題(這似乎適用於其他情況 - 例如使用tomcat)或者我的XML配置存在問題。有沒有人有一個很好的例子,關於其他測試方法的想法,或者看看我做錯了什麼?如何通過SSL爲activemq 5配置Spring 3客戶端

請注意,我的配置通過驗證(如果您看到錯字)。

感謝 -J

<bean id="myJmsRedeliverPolicy" class="org.apache.activemq.RedeliverPolicy"> 
    <property name="maximumRedeliveries" value="500"/> 
</bean> 

<bean id="jmsSecureConnectionFactory" class="org.apache.activemq.ActiveMQSslConnectionFactory"> 
    <property name="brokerURL" value="ssl://test.com:8100"/> 
    <property name="redeliverPolicy" ref="myJmsRedeliverPolicy"/> 
    <property name="keyStore" value="/usr/lib/mykeystore.jks"/> 
    <property name="keyStorePassword" value="mypass"/> 
    <property name="trustStore" value="/usr/lib/mycacerts"/> 
    <property name="trustStorePassword" value="changeit"/> 
</bean> 

<bean id="pooledSecureConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory"> 
    <property name="maxConnections" value="10"/> 
    <property name="connectionFactory" ref="jmsSecureConnectionFactory"/> 
</bean> 

<bean id="txSecureManager" class="org.springframework.jms.connection.JmsTransactionManager"> 
    <property name="connectionFactory" ref="pooledSecureConnectionFactory" /> 
</bean> 

<bean id="jmsSecureConfig" class="org.apache.camel.component.jms.JmsConfiguration"> 
    <property name="connectionFactory" ref="pooledSecureConnectionFactory" /> 
    <property name="testConnectionOnStartup" value="true"/> 
    <property name="transacted" value="true"/> 
    <property name="transactionManager" ref="txSecureManager"/> 
</bean> 

<bean id="activemqs" class="org.apache.activemq.camel.component.ActiveMQComponent"> 
    <property name="configuration" ref="jmsSecureConfig" /> 
</bean> 

回答

1

與啓動應用程序: -Djavax.net.debug=ssl

與您的故障排除得到進一步。通常,該命令提供的打印輸出非常準確地說明了錯誤。

+0

感謝您的評論。我正在使用它進行調試。我通過在JVM中設置密鑰庫和信任庫信息而不是在ConnectionFactory中設置它(如上所述)來獲得它(有點)的工作。任何想法爲什麼一個人會工作,而另一個不會? – eze

+1

好的。我通常用JVM參數來做,但無論如何。 /usr/lib/mykeystore.jks似乎不在您的類路徑中,對嗎? ''可能是正確的語法,因爲您想獲取文件系統密鑰庫。 我建議閱讀本頁:http://fusesource.com/docs/broker/5.5/security/FMQSecuritySSLClients.html關於這個問題的一些信息。 –