在mosquitto 1.2.1 / 1.2.2中,CA证书的SSL证书失败

时间:2013-11-05 10:55:47

标签: ssl certificate mqtt mosquitto

尝试从mosquitto 1.1.3升级到1.2.1 / 1.2.1。我在尝试订阅活动时收到此错误。

  

mosquitto_sub -h 192.168.255.2 -p 8883 -v -t“test”--cafile /etc/certs/rootCA/ca.root.crt -d

     

OpenSSL错误:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败

相同的CA证书在1.1.3版本中运行良好。

openssl版本有问题吗? 我有1.0.0版本。

1 个答案:

答案 0 :(得分:1)

问题是证书中的commonName与您要连接的主机名(在本例中为IP地址)不匹配。 1.1.3没有验证这一点,因此容易受到假冒服务器的攻击。<​​/ p>

您应该修复commonName以匹配您正在使用的主机名,或者更好地使用subjectAltName证书扩展名来提供您的主机名/ IP地址。 subjectAltName允许您在证书中指定任意数量的主机名和IP地址。 Mqttitude有一个如何生成证书的示例:https://github.com/binarybucks/mqttitude/blob/master/tools/TLS/generate-CA.sh

我认为使用IP地址作为commonName是不受欢迎的。

作为最终选项,您还可以使用mosquitto_pub / sub的--insecure选项,或者如果您使用网桥则设置tls_insecure。正如这些选项所暗示的那样,这样做会降低系统的安全性。