2014-07-23 35 views
1

通过以下https://activemq.apache.org/rest.html,我可以通过REST API推送消息(例如curl -u admin:admin -d "body=message" http://localhost:8161/api/message/TEST?type=queue的作品,我可以在管理控制台中看到)但是,我希望能够使用HTTPS 。我发现https://activemq.apache.org/http-and-https-transports-reference.htmlhttp://troyjsd.blogspot.co.uk/2013/06/activemq-https.html,但无法使其正常工作。基于这两个过时的/不完整的链接:使用HTTPS REST设置ActiveMQ

所以,

  1. 我怎样才能SE t ActiveMQ,以便它可以与HTTPS REST端点一起使用?
  2. 假设我做了第1步,我该如何测试它(类似curl命令示例,如上所示)?

我使用ActiveMQ的5.9.1和Mac OS 10.9.4

回答

2

取消注释的conf /的jetty.xml的以下部分。

<!-- 
    Enable this connector if you wish to use https with web console 
--> 
<!-- 
<bean id="SecureConnector" class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector"> 
    <property name="port" value="8162" /> 
    <property name="keystore" value="file:${activemq.conf}/broker.ks" /> 
    <property name="password" value="password" /> 
</bean> 
--> 

Jetty不仅支持WebConsole,而且支持ActiveMQ中的所有HTTP内容。

应该制定出测试箱,但你可能要为真正使用roll your own密钥库/证书。

如果您提供“不安全”标志-k,您可以像以前一样在端口8162上使用curl和HTTPS。

否则,您需要创建pem格式的信任存储并提供它 - 有关详细信息,请参阅this SO。 Curl用您的证书接受参数--cacert <filename.pem>或在其中颁发CA.

+0

这绝对是一个不被别人提及的必要步骤,谢谢!不幸的是,我遇到了一些其他问题。我用非常确切的解释我的问题创建了另一个问题。任何帮助*真的*赞赏! https://stackoverflow.com/questions/24958431/activemq-self-signed-certificate-causes-errors – kolistivra