2015-06-24 88 views
3

我试图配置SSL的最常用的后面these steps配置SSL mosquitto错误

当我重新启动mosquitto,有一个错误:

1435120150: mosquitto version 1.4.2 (build date Mon, 18 May 2015 15:25:19 +0100) starting 

1435120150: Config loaded from /etc/mosquitto/mosquitto.conf. 

1435120150: Opening ipv4 listen socket on port 8883. 

1435120150: Error: Unable to create TLS context. 

这是我mosquitto配置:

pid_file /var/run/mosquitto.pid 
persistence true 
persistence_location /var/lib/mosquitto/ 

log_dest file /var/log/mosquitto/mosquitto.log 

include_dir /etc/mosquitto/conf.d 

bind_address Dell 
port 8883 
cafile /etc/mosquitto/ca_certificates/ca.crt 
certfile /etc/mosquitto/certs/Dell.crt 
keyfile /etc/mosquitto/certs/Dell.key 
tls_version tlsv1 

如何正确配置呢?

回答

1

Unable to create TLS context表明呼叫SSL_CTX_new()失败。这在设置侦听套接字的SSL选项的开始处是正确的,并且是非常意外的。

你可以做的唯一的事情就是检查你的openssl版本,并改变/删除tls_version选项。除非你有特别的理由拒绝TLSv1.1或TLSv1.2(或将来的TLSv1.3),否则删除它是最好的选择。

+0

感谢@ralight。我删除了选项tls_version并重新启动蚊子。没关系。但是当我测试mosquitto_sub时,它错误并且没有任何日志。 在线 'mosquitto_sub -t '#' -v --cafile ca.crt -d 客户mosqsub/17479戴尔发送CONNECT 错误:发生TLS错误' – datnq

+0

我相信你刚刚错过了断“ -p 8883“从您的评论。尝试使用'openssl s_client -connect :8883 -CAfile ca.crt'来验证TLS连接是否正常。 – ralight

+0

我检查连接openssl s_client ...是好的。然后我尝试订阅,它有错误: 'mosquitto_sub -h戴尔-p 8883 -q 1 -t传感器/温度--cafile ca.crt -d' 登录: '1435304515:OpenSSL的错误:错误:14094416 :SSL例程:SSL3_READ_BYTES:sslv3警报证书未知 1435304515:OpenSSL错误:错误:140940E5:SSL例程:SSL3_READ_BYTES:ssl握手失败 1435304515:客户端上的套接字错误,断开连接# – datnq

0

请检查客户端系统的时间和SSL证书的结束日期,客户端系统时必须SSL证书的开始时间和结束时间

检查客户端系统日期之间是:

date

检查OpenSSL的证书截止日期:

openssl x509 -enddate -noout -in cacert.pem

0

另一种解决方案...针对[不同]具体原因。

对于错误“错误:问题设置TLS选项”,一个具体的原因是固定的像这样:

- 在mosquitto配置文件,所包含的与证书,密钥,以及文件名CA配置参数线每个文件名后面和行尾字符之前的“空格”字符。

- 移除行尾字符之前的空格,导致错误不再出现。

- 蚊子经纪人然后启动没有错误。