ActiveMQ,SSL和传输连接器

时间:2014-05-19 22:24:32

标签: java ssl encryption https activemq

使用本网站作为指南:

http://activemq.apache.org/how-do-i-use-ssl.html

我执行了以下操作(我在esite中找到了一些keytool命令)

keytool -genkey -alias broker -keyalg RSA -keystore /home/amq/broker.ks -dname "CN=server, O=IBM, C=GB" -keypass passw0rd -storepass passw0rd

keytool -export -alias broker -keystore /home/amq/broker.ks -file /home/amq/broker_cert -storepass passw0rd

keytool -genkey -alias client -keyalg RSA -keystore /home/client/client.ks -dname "CN=client, O=IBM, C=GB" -keypass passw0rd -storepass passw0rd

keytool -import -alias broker -keystore /home/client/client.ts -file /home/amq/broker_cert -storepass passw0rd

keytool -export -alias client -keystore /home/client/client.ks -file /home/client/client_cert -storepass passw0rd

keytool -import -alias client -keystore /home/amq/broker.ts -file /home/client/client_cert -storepass passw0rd

现在创建了密钥库和信任库,我启动了代理

export SSL_OPTS=-Djavax.net.ssl.keyStore=/home/amq/broker.ks\ -Djavax.net.ssl.keyStorePassword=passw0rd\ -Djavax.net.ssl.trustStore=/home/amq/broker.ts

cd /usr/local/activemq/apache-activemq-5.9.0
bin/activemq console

到目前为止,一切都很好,而我想要做的就是使用随安装一起提供的ProducerTool.java,然后运行它而不是SSL

我对文档有点神秘,如下

  

使用Spring为Broker实例配置SSL

     

有时使用javax.net.ssl。*系统属性不是   适用于它们影响JVM中的所有SSL用户。 ActiveMQ 5.2.x增加了   允许经纪人的元素   要配置的特定SSL属性集。

     

SslContext测试用例验证启动SSL传输侦听器   使用代理Xbean中指定的配置。 SslContext   element按如下方式添加到代理:

<amq:sslContext>
  <amq:sslContext
        keyStore="server.keystore" keyStorePassword="password"
        trustStore="client.keystore" trustStorePassword="password"/>
</amq:sslContext>

<amq:transportConnectors>
  <amq:transportConnector uri="ssl://localhost:61616" />
</amq:transportConnectors>
</amq:broker> </beans>
     

SslContext用于为其配置SslTransportFactory   经纪人。可用的配置选项的完整详细信息可以是   在模式定义或访问者中看到   org.apache.activemq.spring.SpringSslContext

我从中收集的是,因为我不关心所有JVM用户将被迫使用SSL,我很好,并且不需要任何Spring配置。 (至少我希望如此)

我被2件事困扰

1&GT;我是否相信我不需要执行任何Spring配置,我可以简单地使用-Djava选项

2 - ;我也不认为我需要ssl传输连接器,我应该能够运行ProducerTool.java代码并且很好。为什么我会这么想,因为如果我需要将SSL传输连接器添加到额外配置​​的borker,并且它强制更改源代码。

我在假设中是否正确

1&GT;我不需要任何Spring更改,因为我希望所有JVM用户都使用SSL

2 - ;我可以不使用ssl传输连接器,只需使用ProducerTool.java,实际上使默认连接使用SSL吗?

由于

1 个答案:

答案 0 :(得分:1)

它是一个JMS客户端,所以无论哪种方式(无论是SSL传输还是不传输),客户端都将连接到端口61616,因为SSL传输配置为61616

但我无法从文件中看出运输是否是一项要求

任何想法