ActiveMQ 支持 TLSv1.2

ActiveMQ support for TLSv1.2

我正在尝试让 ActiveMQ 支持 TLSv1.2。我正在使用 activemq v5.14.5。 中提到的修复没有奏效。当我单步执行代码时,我看到

        context.setSSLContext(sslContext);
        SslContext.setCurrentSslContext(context);
        Connection connection = factory.createConnection(loginName, pwd);

对 factory.createConnection() 的调用实际上并没有使用刚刚设置的值,而是使用 "TLS" 的硬编码默认值创建了一个新的 SSL 上下文。我在调试器中观察到这一点。

欢迎提出任何其他建议。我认为 http://activemq.apache.org/configuring-transports.html 的主题 "configuring transports" 可能有解决方案,但我还没有尝试过。

默认的嵌入式 ActiveMQ 代理配置不会创建 SSL 传输连接器。如果您手动添加了 SSL 传输连接器,那么您可能已经使用选项 transport.enabledProtocols:

限制了代理支持的 SSL 协议
<transportConnector name="ssl" uri="ssl://localhost:61617?transport.enabledProtocols=TLSv1.2"></transportConnector>

此配置将 ActiveMQ 的 SSL 连接器限制为仅支持 TLSv1.2。不支持其他 TLSv1、TLSv1.1、SSLv3。