[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| [mosquitto-dev] Error when using MQTT Mosquitto broker with SSL/TLS transport security and non-local client | 
Title: using mosquitto with tl
We try to use mosquitto mqtt messages with tls security protocol.
To do so, we follow the following tutorial:
https://primalcortex.wordpress.com/2016/03/31/mqtt-mosquitto-broker-with-ssltls-transport-security/
 
to generate the authority certificate file and the server certificate we use this script https://github.com/owntracks/tools/blob/master/TLS/generate-CA.sh
This tutorial seems complete and well done as we successfully connect several machines by following this method. Nevertheless when trying to configure the broker on our server we encounter several problems.
In the server the mosquitto.conf content is :
 
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
pid_file /var/run/mosquitto.pid
 
persistence true
persistence_location /var/lib/mosquitto/
 
log_dest file /var/log/mosquitto/mosquitto.log
 
listener 8884
cafile /etc/mosquitto/certs3/ca.crt
certfile /etc/mosquitto/certs3/server.crt
keyfile /etc/mosquitto/certs3/server.key
 
Mosquitto version is 1.4.10 and Openssl version is 1.0.2j
When trying to subcribe or publish on port 8884 locally (ie from a client also on the server), no problem, the connection success.
But when we try to connect from an other machine we get different error if we use command line or
mosqutto C library
- With command line
mosquitto_pub -h xxx.xxx.com -t test -m "hello word" --cafile /etc/mosquitto/certs/ca.crt -p 8884
On server log file
 
1484748728: OpenSSL Error: error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown
And ssldump gives the following exit:
 
0.0384 (0.0384) C>S Handshake
 ClientHello
 Version 3.3 
 cipher suites
 Unknown value 0xc030
 Unknown value 0xc02c
 Unknown value 0xc028
 Unknown value 0xc024
 Unknown value 0xc014
 Unknown value 0xc00a
 Unknown value 0xa3
 Unknown value 0x9f
 Unknown value 0x6b
 Unknown value 0x6a
 TLS_DHE_RSA_WITH_AES_256_CBC_SHA
 TLS_DHE_DSS_WITH_AES_256_CBC_SHA
 Unknown value 0x88
 Unknown value 0x87
 Unknown value 0xc032
 Unknown value 0xc02e
 Unknown value 0xc02a
 Unknown value 0xc026
 Unknown value 0xc00f
 Unknown value 0xc005
 Unknown value 0x9d
 Unknown value 0x3d
 TLS_RSA_WITH_AES_256_CBC_SHA
 Unknown value 0x84
 Unknown value 0xc02f
 Unknown value 0xc02b
 Unknown value 0xc027
 Unknown value 0xc023
 Unknown value 0xc013
 Unknown value 0xc009
 Unknown value 0xa2
 Unknown value 0x9e
 TLS_DHE_DSS_WITH_NULL_SHA
 Unknown value 0x40
 TLS_DHE_RSA_WITH_AES_128_CBC_SHA
 TLS_DHE_DSS_WITH_AES_128_CBC_SHA
 Unknown value 0x9a
 Unknown value 0x99
 Unknown value 0x45
 Unknown value 0x44
 Unknown value 0xc031
 Unknown value 0xc02d
 Unknown value 0xc029
 Unknown value 0xc025
 Unknown value 0xc00e
 Unknown value 0xc004
 Unknown value 0x9c
 Unknown value 0x3c
 TLS_RSA_WITH_AES_128_CBC_SHA
 Unknown value 0x96
 Unknown value 0x41
 Unknown value 0xc011
 Unknown value 0xc007
 Unknown value 0xc00c
 Unknown value 0xc002
 TLS_RSA_WITH_RC4_128_SHA
 TLS_RSA_WITH_RC4_128_MD5
 Unknown value 0xc012
 Unknown value 0xc008
 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
 TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
 Unknown value 0xc00d
 Unknown value 0xc003
 TLS_RSA_WITH_3DES_EDE_CBC_SHA
 Unknown value 0xff
 compression methods
 NULL
1 2 0.0415 (0.0030) S>C Handshake
 ServerHello
 Version 3.3 
 session_id[0]=
 
 cipherSuite Unknown value 0xc030
 compressionMethod NULL
1 3 0.0415 (0.0000) S>C Handshake
 Certificate
1 4 0.0415 (0.0000) S>C Handshake
 ServerKeyExchange
1 5 0.0415 (0.0000) S>C Handshake
 ServerHelloDone
1 6 0.0783 (0.0368) C>S Alert
 level fatal
 value certificate_unknown
1 0.0785 (0.0002) S>C TCP FIN
We try and get the same result with machine on which openssl 1.0.2j is installed with mosquitto 1.4.10 than on a machine on which oppenssl 1.0.1t is installed with mosquitto version 1.3.4.
when using the insecure option, it is working well
mosquitto_pub -h xx.xxx.com -t test -m "hello word" --cafile /etc/mosquitto/certs/ca.crt -p 8884 –insecure
but it is not our goal.
-When using C mosquitto library :
openssl-1.1.0c
mosquitto 1.4.10
c-code implementation:
 
    err = mosquitto_tls_set(poMosq,
      "/etc/mosquitto/certs/ca.crt",
      "/etc/mosquitto/certs/", 
      NULL,
      NULL,
      NULL
    );
 
 
 
1484747462: OpenSSL Error: error:14094438:SSL routines:SSL3_READ_BYTES:tlsv1 alert internal error
 
 
 
 C>S Handshake
 ClientHello
 Version 3.3 
 cipher suites
 Unknown value 0xc030
 Unknown value 0xc02c
 Unknown value 0xc028
 Unknown value 0xc024
 Unknown value 0xc014
 Unknown value 0xc00a
 Unknown value 0xa5
 Unknown value 0xa3
 Unknown value 0xa1
 Unknown value 0x9f
 Unknown value 0x6b
 Unknown value 0x6a
 Unknown value 0x69
 Unknown value 0x68
 TLS_DHE_RSA_WITH_AES_256_CBC_SHA
 TLS_DHE_DSS_WITH_AES_256_CBC_SHA
 TLS_DH_RSA_WITH_AES_256_CBC_SHA
 TLS_DH_DSS_WITH_AES_256_CBC_SHA
 Unknown value 0x88
 Unknown value 0x87
 Unknown value 0x86
 Unknown value 0x85
 Unknown value 0xc032
 Unknown value 0xc02e
 Unknown value 0xc02a
 Unknown value 0xc026
 Unknown value 0xc00f
 Unknown value 0xc005
 Unknown value 0x9d
 Unknown value 0x3d
 TLS_RSA_WITH_AES_256_CBC_SHA
 Unknown value 0x84
 Unknown value 0xc02f
 Unknown value 0xc02b
 Unknown value 0xc027
 Unknown value 0xc023
 Unknown value 0xc013
 Unknown value 0xc009
 Unknown value 0xa4
 Unknown value 0xa2
 Unknown value 0xa0
 Unknown value 0x9e
 TLS_DHE_DSS_WITH_NULL_SHA
 Unknown value 0x40
 Unknown value 0x3f
 Unknown value 0x3e
 TLS_DHE_RSA_WITH_AES_128_CBC_SHA
 TLS_DHE_DSS_WITH_AES_128_CBC_SHA
 TLS_DH_RSA_WITH_AES_128_CBC_SHA
 TLS_DH_DSS_WITH_AES_128_CBC_SHA
 Unknown value 0x9a
 Unknown value 0x99
 Unknown value 0x98
 Unknown value 0x97
 Unknown value 0x45
 Unknown value 0x44
 Unknown value 0x43
 Unknown value 0x42
 Unknown value 0xc031
 Unknown value 0xc02d
 Unknown value 0xc029
 Unknown value 0xc025
 Unknown value 0xc00e
 Unknown value 0xc004
 Unknown value 0x9c
 Unknown value 0x3c
 TLS_RSA_WITH_AES_128_CBC_SHA
 Unknown value 0x96
 Unknown value 0x41
 TLS_RSA_WITH_IDEA_CBC_SHA
 Unknown value 0xc011
 Unknown value 0xc007
 Unknown value 0xc00c
 Unknown value 0xc002
 TLS_RSA_WITH_RC4_128_SHA
 TLS_RSA_WITH_RC4_128_MD5
 Unknown value 0xc012
 Unknown value 0xc008
 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
 TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
 TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
 TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
 Unknown value 0xc00d
 Unknown value 0xc003
 TLS_RSA_WITH_3DES_EDE_CBC_SHA
 Unknown value 0xff
 compression methods
 NULL
1 2 0.0426 (0.0032) S>C Handshake
 ServerHello
 Version 3.3 
 session_id[0]=
 cipherSuite Unknown value 0xc030t
 compressionMethod NULL
1 3 0.0426 (0.0000) S>C Handshake
 Certificate
1 4 0.0426 (0.0000) S>C Handshake
 ServerKeyExchange
1 5 0.0426 (0.0000) S>C Handshake
 ServerHelloDone
1 6 0.0770 (0.0344) C>S Alert
 level fatal
We check if the common name on the certificate server is good and it corresponds to the hostname used to connect the server, so the problem does not seems to come from here.