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)

Reply via email to