You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Dan Taflin (JIRA)" <ji...@apache.org> on 2017/10/06 23:18:02 UTC
[jira] [Created] (AMQNET-572) Failover crashes when AMQ Server
enforces TLS 1.2
Dan Taflin created AMQNET-572:
---------------------------------
Summary: Failover crashes when AMQ Server enforces TLS 1.2
Key: AMQNET-572
URL: https://issues.apache.org/jira/browse/AMQNET-572
Project: ActiveMQ .Net
Issue Type: Bug
Reporter: Dan Taflin
Priority: Critical
When using the FailoverTransport with underlying SslTransports, and specifying Tls12 as the SslProtocol, the initial connection to the ActiveMQ server succeeds in establishing a TLS v1.2 session. But upon failover, when it tries to reconnect, the Tls12 specification is lost and the NMS client reverts to the default, which appears to be TLS 1.0.
The consequence is that it is impossible to enforce TLS 1.2 on the server, because although the initial connection would succeed, subsequent ones crash the client.
Here's a sample failover transport URL:
{{failover:(ssl://server1.example.com:61616?transport.sslProtocol=Tls12,ssl://server2.example.com:61616?transport.sslProtocol=Tls12)}}
I've traced the issue to the FailoverTransport.DoConnect() method, which, when obtaining the ConnectList in order to obtain a url to connect to, obtains a url without a querystring. So in the above example, transport.sslProtocol=Tls12 is gone. The source of this truncated url is the ConnectionControl command marshalled from the server.
The solution would seem to be to create an SslContext class to keep track of the sslProtocol, similar to how the java version works. I have built a working prototype for us to use locally and would be willing to make it available.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)