<div dir="ltr">Hello,<br><br>I've been trying to get mosquitto_sub to connect to RabbitMQ, when I perform a test using test.mosquitto.org and their certificate it works fine and when I connect to my RabbitMQ using OpenSSL s_client and I supply the CAfile it performs the handshake correctly. However this fails when sending the CAfile via mosquitto_sub<br><br>vagrant@precise32:/opt/data$ ./mosquitto-1.2.2/client/mosquitto_sub -h 54.229.163.21 -p 8883 -t "#" -d --cafile DigiCertEA.pem --tls-version tlsv1<br>Client mosqsub/3530-precise32 sending CONNECT<br>OpenSSL Error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed<br>Error: Protocol error<br><br>RabbitMQ = 3.2.0<br>OpenSSL = 1.0.1<br>Erlang = R16B<br><br>This is the detail from my log in RabbitMQ. The CAfiles have slightly different names but using openssl x509 -in -text -noout gives the same serial number<br><br>=ERROR REPORT==== 28-Oct-2013::12:52:02 ===<br>SSL: certify: tls_connection.erl:2286:Fatal error: certificate unknown<br><br>=ERROR REPORT==== 28-Oct-2013::12:52:07 ===<br>** Generic server &lt;0.594.0&gt; terminating <br>** Last message in was {inet_async,#Port&lt;0.14157&gt;,35762,{ok,#Port&lt;0.15830&gt;}}<br>** When Server state == {state,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {rabbit_mqtt_sup,start_ssl_client,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [[{cacertfile,"/etc/ssl/certs/DigiCertCA.pem"},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {certfile,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "/etc/ssl/certs/star_*****_****_net_chain.pem"},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {keyfile,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "/etc/ssl/private/*****.****.net.key"},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {verify,verify_none},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {fail_if_no_peer_cert,false}]]},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Port&lt;0.14157&gt;,35762}<br>** Reason for termination == <br>** {timeout,{gen_server2,call,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&lt;0.596.0&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {go,#Port&lt;0.15830&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Fun&lt;rabbit_networking.2.65720357&gt;}]}}<br><br>=ERROR REPORT==== 28-Oct-2013::12:52:07 ===<br>** Generic server &lt;0.596.0&gt; terminating<br>** Last message in was {go,#Port&lt;0.15830&gt;,#Fun&lt;rabbit_networking.2.65720357&gt;}<br>** When Server state == undefined<br>** Reason for termination == <br>** {{badmatch,{error,{ssl_upgrade_error,{tls_alert,"certificate unknown"}}}},<br>&nbsp;&nbsp;&nbsp; [{rabbit_mqtt_reader,handle_call,3,[]},<br>&nbsp;&nbsp;&nbsp;&nbsp; {gen_server2,handle_msg,2,[]},<br>&nbsp;&nbsp;&nbsp;&nbsp; {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}<br><br>Is this a problem with RabbitMQ or perhaps the mosquitto_sub client? If it belongs to the latter I guess I should redirect my question :)<br><br>Cheers,<br>Dan<br></div>