【问题标题】:Does ActiveMQ support secure websockets?ActiveMQ 是否支持安全的 websocket?
【发布时间】:2011-10-04 15:22:00
【问题描述】:

previous question 关于 ActiveMQ 和 WebSockets 之后,我想知道是否支持安全 WebSockets。

我在官方网站上找不到任何关于它们的信息(OT:文档组织得很糟糕),我尝试使用以下传输连接器但没有成功:

<transportConnector name="websocket" uri="wss://0.0.0.0:61614"/>
<transportConnector name="websocket" uri="ws+ssl://0.0.0.0:61614"/>

考虑到 ActiveMQ 的专业目标以及其他传输支持 ssl(例如 stomp+ssl)的事实,这样的连接实际上是不可能的,这对我来说似乎很奇怪。

谢谢。

【问题讨论】:

    标签: websocket activemq stomp


    【解决方案1】:

    更新答案:是的,从 5.7.0 开始:http://activemq.apache.org/websockets.html

    在此引用:

    5.7.0 版引入了安全 Web 套接字传输。要配置它,您需要两件事。首先,您需要像这样配置一个新的传输连接器

    <transportConnectors>
        <transportConnector name="secure_websocket" uri="wss://0.0.0.0:61614"/>
    </transportConnectors>
    

    请注意,我们使用 wss url 前缀来表示协议的安全版本。接下来,您需要为此传输提供 SSL 上下文。您可以通过在您的代理配置中提供 sslContext 来做到这一点,就像您为 ssl 或 https 传输所做的那样。

    <sslContext>
        <sslContext keyStore="file:${activemq.conf}/broker.ks"
            keyStorePassword="password" trustStore="file:${activemq.conf}/broker.ts"
            trustStorePassword="password"
        />
    </sslContext>
    

    就是这样,您的安全 websocket 传输已准备就绪。

    【讨论】:

    • 我将添加(以节省其他人的时间)密钥库必须为 JKS 格式(PKCS12 将不起作用,至少在版本 5.11.1 中),并且可以省略 trustStore如果不需要 trustStore,则为 trustStorePassword。
    【解决方案2】:

    此时……

    ActiveMQ 仅支持 websocket ws:// urls

    Apollo 1.1 SNAPSHOT同时支持ws和wss

    For example:

     <connector id="ws" bind="ws://0.0.0.0:61623" connection_limit="2000"/>
     <connector id="wss" bind="wss://0.0.0.0:61624" connection_limit="2000"/>
    

    【讨论】:

    • 我不知道阿波罗,看起来很棒!
    猜你喜欢
    • 2012-06-13
    • 1970-01-01
    • 2012-07-30
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    相关资源
    最近更新 更多