2017-10-09 60 views
0

我正在使用Microsoft Azure中的Debian VM。 我安装了Mosquitto,它运行良好,但我没有配置SSL。 我创建了一个自签名的证书和密钥(server.crt这& server.key)使用OpenSSL:未知CA在Debian上测试Mosquitto SSL配置时

openssl genrsa -des3 -out ca.key 2048 
openssl req -new -x509 -days 1826 -key ca.key -out ca.crt 
openssl genrsa -out server.key 2048 
openssl req -new -out server.csr -key server.key 
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 360 

我的主机名是Debian的RNO,我用它作为共同的名字。 我的mosquitto.conf是

# mosquitto.conf 
pid_file /var/run/mosquitto.pid 
persistence true 
persistence_location /var/lib/mosquitto/ 
log_dest file /var/log/mosquitto/mosquitto.log 
# MQTT over TLS/SSL 
listener 8883 
cafile /etc/mosquitto/certs/ca.crt 
certfile /etc/mosquitto/certs/server.crt 
keyfile /etc/mosquitto/certs/server.key 
log_type error 
log_type warning 
log_type notice 
log_type information 
tls_version tlsv1.2 
# End of MQTT over TLS/SLL configuration 

代理程序无误启动。 当我exec的像mosquitto_pub:

mosquitto_pub -h Debian-RNO -t topic1 -m "test" -d --cafile /etc/mosquitto/certs/ca.crt -p 8883 

我收到此错误:

Unable to connect (A TLS error occurred.). 

在mosquitto.log,我有这些项:

1507583871: New connection from 52.178.101.16 on port 8883. 
1507583871: OpenSSL Error: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca 
1507583871: OpenSSL Error: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure 
1507583871: Socket error on client <unknown>, disconnecting. 

我搜索没有成功小时...任何帮助,欢迎!

回答

0
SSL3_READ_BYTES:tlsv1 alert unknown ca 

这清楚地告诉SSL握手时,CA证书是不是因为它是由您的本地产生的CA,所以你需要导入你的CA证书的信任(操作系统级或任何信任mosquitto是可信的签署使用)

+0

但蚊子正在使用mosquitto.conf证书位置描述,对吧? https://mosquitto.org/man/mosquitto-conf-5.html – rno