Mosquitto Bridge因错误的ssl版本错误而失败

时间:2018-11-07 20:53:21

标签: ssl openssl mqtt iot mosquitto

我当前正在尝试建立一个MQTT系统,在该系统中,我在服务器上运行一个中央代理(代理1),并且需要TLS加密,而一个本地代理(代理2)只能在我的本地网络中访问并且不需要任何形式的加密或身份验证。 我的“内容”将发布并订阅应该配置为与Broker 1的桥梁的Broker 2,因此我的东西可以发布和订阅Broker 1上的主题,而无需自己实现TLS。

代理程序1是在Cent Os 6服务器(我的Uberspace)上运行的Mosquitto实例,并配置为要求使用Lets Encrypt证书进行身份验证和加密。

Mosquitto.conf:

port <port>
persistence true
persistence_location /home/drparrot/mosquitto/var/lib/mosquitto/
log_dest topic
log_type error
log_type warning
log_type notice
log_type information
certfile /home/drparrot/.config/letsencrypt/live/<url>/cert.pem
cafile /home/drparrot/.config/letsencrypt/live/<url>//chain.pem
keyfile /home/drparrot/.config/letsencrypt/live/<url>/ /privkey.pem

allow_anonymous false

connection_messages true
log_timestamp true

Broker 2也是在连接到我本地WiFi的树莓派上运行的蚊子。 它被配置为与代理1的桥梁。 mosquitto.conf:

persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log
log_type all

connection uberspace-bridge
address <url>:<port>
topic # out 0
topic # in 0
clientid <id>
username <username> 
password <password>
bridge_capath /etc/ssl/certs/

启动Broker 2时,我可以从日志文件中验证它尝试连接到Broker 1,但失败,并显示以下消息:

1541447922: Bridge <id> sending CONNECT
1541447922: OpenSSL Error: error:1417110A:SSL routines:tls_process_server_hello:wrong ssl version
1541447922: Socket error on client local.<id>, disconnecting.

但是,如果我尝试通过

从Raspberry Pi托管Broker 2连接到托管Broker 1的服务器
openssl s_client -connect <url>:<port> 

一切正常,因此我想我的证书都已正确设置,并且在树莓派和服务器上的开放ssl版本总体上是匹配的。而且,我能够使用MQTT.fx从Windows计算机连接/发布/订阅Broker 1。

有人能给我提示我做错了什么,或者我可以做些什么来进一步调试问题吗?

0 个答案:

没有答案