在Debian上测试MOSQUITO SSL配置时未知CA

在Debian上测试MOSQUITO SSL配置时未知CA,debian,mosquitto,Debian,Mosquitto,我正在Microsoft Azure中使用Debian虚拟机。 我安装了MOSQUITO,它运行良好,而我没有配置SSL。 我使用OpenSSL创建了自签名证书和密钥(server.crt和server.key): 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 re

我正在Microsoft Azure中使用Debian虚拟机。 我安装了MOSQUITO,它运行良好,而我没有配置SSL。 我使用OpenSSL创建了自签名证书和密钥(server.crt和server.key):

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
代理程序启动时没有错误。 当我在Mosquito_酒吧工作时,比如:

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.).
在mosquitcho.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.
1507583871:端口8883上52.178.101.16的新连接。
1507583871:OpenSSL错误:错误:14094418:SSL例程:SSL3_读取_字节:tlsv1警报未知ca
1507583871:OpenSSL错误:错误:140940E5:SSL例程:SSL3_读取_字节:SSL握手失败
1507583871:客户端上的套接字错误,正在断开连接。
我找了几个小时都没有成功。。。欢迎任何帮助

SSL3_READ_BYTES:tlsv1 alert unknown ca

这清楚地表明,在ssl握手过程中,CA证书不受信任,因为它是由本地生成的CA签名的,因此您需要在信任存储(操作系统级别或mosquitto使用的任何信任存储)中导入CA证书。

但是mosquitto使用的是mosquitto.conf,其中描述了证书的位置,对吗?嗨,你找到解决办法了吗?通过cmd运行mosquitto_pub时,我也面临同样的问题windows@JN_newbie你还记得你有没有找到解决这个问题的办法吗?