未知CA在Debian上测试Mosquitto SSL配置时
问题描述:
我正在使用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.
我搜索没有成功小时...任何帮助,欢迎!
答
SSL3_READ_BYTES:tlsv1 alert unknown ca
这清楚地告诉SSL握手时,CA证书是不是因为它是由您的本地产生的CA,所以你需要导入你的CA证书的信任(操作系统级或任何信任mosquitto是可信的签署使用)
但蚊子正在使用mosquitto.conf证书位置描述,对吧? https://mosquitto.org/man/mosquitto-conf-5.html – rno