我试图让ActiveMQ支持TLSv1.2。我使用的是activemq v5.14.5。 Create ActiveMQ Connection on TLS1.2中提到的修复无效。当我逐步完成代码时,我看到了
context.setSSLContext(sslContext);
SslContext.setCurrentSslContext(context);
Connection connection = factory.createConnection(loginName, pwd);
对factory.createConnection()的调用实际上并没有使用刚刚设置的值,而是使用硬编码的默认值" TLS"创建一个新的SSL上下文。我在调试器中观察到了这一点。
欢迎任何其他建议。我认为主题是配置传输"在http://activemq.apache.org/configuring-transports.html可能会有解决办法,但我还没有尝试过。
答案 0 :(得分:0)
默认的嵌入式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将不受支持。