http://www.steves-internet-guide.com/mosquitto-bridge-encryption/
当我禁用SSL(从配置中删除证书并更改端口)时,它的工作正常。此外,我在nodejs中使用MQTT库编写的测试应用程序可以通过SSL连接到经纪人,而没有任何问题(使用与桥相同的CA.CRT)。因此,桥上看起来有问题,但不知道什么,日志无济于事。 MQTT代理配置:
allow_anonymous true
listener 8883
protocol mqtt
cafile /mosquitto/certs/ca.crt
certfile /mosquitto/certs/server.crt
keyfile /mosquitto/certs/server.key
MQTT桥配置:
log_type all
allow_anonymous true
listener 1883 0.0.0.0
connection hub_to_cloud
address XXX.XXX.XX.XX:8884
bridge_cafile /mosquitto/certs/ca.crt
bridge_protocol_version mqttv311
try_private false
topic # both 0
docker-compose.yml:
version: "3.8"
services:
nginx:
image: nginx:alpine
restart: always
container_name: nginx-container
ports:
- 80:80
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./nginx/logs:/var/log/nginx
networks:
- mqtt-net
depends_on:
- mosquitto
mosquitto:
image: eclipse-mosquitto:2
container_name: mqtt-broker
ports:
- 1884:1883
- 8884:8883
- 9002:9001
volumes:
- ./mosquitto/config:/mosquitto/config
- ./mosquitto/data:/mosquitto/data
- ./mosquitto/log:/mosquitto/log
- ./mosquitto/certs:/mosquitto/certs
networks:
- mqtt-net
networks:
mqtt-net:
nginx.conf:
events {
worker_connections 1024;
}
stream {
error_log /var/log/nginx/error.log;
upstream mqtt_broker {
server mqtt-broker:8884;
}
server {
listen 8884;
proxy_pass mqtt_broker;
}
}
桥的唯一结果是:Connecting Bridge Hub_to_cloud(xxx.xxx.xx.xx:8884)
,我设法解决了这个问题。当我将图像版本更改为
eclipse-mosquitto:latest
eclipse-mosquitto:2
Mosquitto在版本2.0.18中,它不起作用。