title: RabbitMQ: handshake error when attempting to use SSL certificates
body: <p>I am trying to use SSL certificates with RabbitMQ but I keep getting handshake errors with the broker.</p>
  
  <p>The certificates that I have generated work fine when using the openssl 's_client' and 's_server' commands in separate terminal windows and utilizing port 8443 as detailed in the SSL Troubleshooting guide (<a href="http://www.rabbitmq.com/troubleshooting-ssl.html" rel="noreferrer">http://www.rabbitmq.com/troubleshooting-ssl.html</a>).</p>
  
  <p>The problem appears when I attempt to connect to the RabbitMQ SSL port 5671 using the same openssl 's_client' command: </p>
  
  <p>Running this:</p>
  
  <pre><code>openssl s_client -connect localhost:5671 -cert /etc/rabbitmq/ssl/client/cert.pem -key /etc/rabbitmq/ssl/client/key.pem -CAfile /etc/rabbitmq/ssl/certificate_auth/cacert.pem
  </code></pre>
  
  <p>Produces this:</p>
  
  <pre><code>CONNECTED(00000003)
  depth=1 CN = RMQCA
  verify return:1
  depth=0 CN = roger.xxxxxx.com, O = server
  verify return:1
  139997248210760:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1256:SSL alert number 40
  139997248210760:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake  failure:s23_lib.c:177:
  ---
  </code></pre>
  
  <p>The SSL listener starts fine as indicated in the RabbitMQ log:</p>
  
  <pre><code>=INFO REPORT==== 19-May-2014::15:45:34 ===
   started TCP Listener on [::]:5672
  
  =INFO REPORT==== 19-May-2014::15:45:34 ===
   started SSL Listener on [::]:5671
  </code></pre>
  
  <p>When attempting to connect to port 5671 with 's_client' the error appears:</p>
  
  <pre><code>=INFO REPORT==== 19-May-2014::17:20:39 ===
  accepting AMQP connection &lt;0.3263.0&gt; ([::1]:58538 -&gt; [::1]:5671)
  
  =ERROR REPORT==== 19-May-2014::17:20:39 ===
  SSL: certify: ssl_handshake.erl:1346:Fatal error: handshake failure
  
  =ERROR REPORT==== 19-May-2014::17:20:44 ===
  error on AMQP connection &lt;0.3263.0&gt;: {ssl_upgrade_error,
                                        {tls_alert,"handshake failure"}} (unknown POSIX error)
  </code></pre>
  
  <p>RabbitMQ Config file:</p>
  
  <pre><code>[    
      {rabbit, [
        {ssl_listeners, [5671]},
        {ssl_options, [{cacertfile, "/etc/rabbitmq/ssl/certificate_auth/cacert.pem"},
                       {certfile, "/etc/rabbitmq/ssl/server/cert.pem"},
                       {keyfile, "/etc/rabbitmq/ssl/server/key.pem"},
                       {verify, verify_peer},
                       {fail_if_no_peer_cert, false}]}
       ]} 
  ].
  </code></pre>
  
  <p>RabbitMQ info:</p>
  
  <pre><code>[{pid,10375},
   {running_applications,
       [{rabbitmq_management,"RabbitMQ Management Console","3.2.3"},
        {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.2.3"},
        {webmachine,"webmachine","1.10.3-rmq3.2.3-gite9359c7"},
        {mochiweb,"MochiMedia Web Server","2.7.0-rmq3.2.3-git680dba8"},
        {rabbitmq_management_agent,"RabbitMQ Management Agent","3.2.3"},
        {rabbit,"RabbitMQ","3.2.3"},
        {ssl,"Erlang/OTP SSL application","5.3.3"},
        {public_key,"Public key infrastructure","0.21"},
        {crypto,"CRYPTO version 2","3.2"},
        {asn1,"The Erlang ASN1 compiler version 2.0.4","2.0.4"},
        {os_mon,"CPO  CXC 138 46","2.2.14"},
        {inets,"INETS  CXC 138 49","5.9.8"},
        {mnesia,"MNESIA  CXC 138 12","4.11"},
        {amqp_client,"RabbitMQ AMQP Client","3.2.3"},
        {xmerl,"XML parser","1.3.6"},
        {sasl,"SASL  CXC 138 11","2.3.4"},
        {stdlib,"ERTS  CXC 138 10","1.19.4"},
        {kernel,"ERTS  CXC 138 10","2.16.4"}]},
   {os,{unix,linux}},
   {erlang_version,
       "Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [smp:2:2] [async-threads:30] [hipe] [kernel-poll:true]\n"},
   {memory,
       [{total,43812088},
        {connection_procs,5616},
        {queue_procs,42528},
        {plugins,451248},
        {other_proc,13805200},
        {mnesia,72752},
        {mgmt_db,10208},
        {msg_index,34560},
        {other_ets,1159472},
        {binary,1030272},
        {code,21819091},
        {atom,793505},
        {other_system,4587636}]},
   {vm_memory_high_watermark,0.4},
   {vm_memory_limit,787819724},
   {disk_free_limit,50000000},
   {disk_free,31267266560},
   {file_descriptors,
       [{total_limit,924},{total_used,4},{sockets_limit,829},{sockets_used,2}]},
   {processes,[{limit,1048576},{used,215}]},
   {run_queue,0},
   {uptime,7893}]
  ...done.
  </code></pre>
  
  <p>Any help would be greatly appreciated</p>
  
  <p>Thanks in advance.</p>
  
  <p>UPDATE:</p>
  
  <p>I get the following errors when trying to connect with the rabbitmqadmin utility. </p>
  
  <p>Log File:</p>
  
  <pre><code>=INFO REPORT==== 20-May-2014::14:39:12 ===
  accepting AMQP connection &lt;0.16589.0&gt; ([::1]:58922 -&gt; [::1]:5671)
  
  =ERROR REPORT==== 20-May-2014::14:39:12 ===
  SSL: certify: ssl_handshake.erl:1346:Fatal error: handshake failure
  
  =ERROR REPORT==== 20-May-2014::14:39:17 ===
  error on AMQP connection &lt;0.16589.0&gt;: {ssl_upgrade_error,
                                         {tls_alert,"handshake failure"}} (unknown POSIX error)
  </code></pre>
  
  <p>The rabbitmqadmin command produced the following: </p>
  
  <pre><code>*** Could not connect: [Errno 1] _ssl.c:492: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
  </code></pre>