【发布时间】:2019-11-26 11:27:30
【问题描述】:
在我的 IoT 项目遇到一些问题后,请参阅此线程: Mosquitto Broker Bridge Configuration - unacceptable protocol version实现桥接还有一个问题。
我在安装了 Raspbian Stretch 的 Raspberry Pi 上使用 Mosquitto v1.6.7。 mosquitto 代理桥和远程代理 (SAP IoT Cloud) 之间的连接无法建立。我再次仔细检查了所有设置(端点地址正确,CAcert.pem 与我刚从客户端发送到没有网桥的远程代理时使用的相同,再次高度赞赏任何提示!
这是我为 mosquitto 经纪人更新的配置:
我已经取消了连接名称和地址的个性化。连接名称在远程代理 (SAP Cloud) 中用作 clientId,并经过双重检查,端点地址也是如此。
listener 8883
connection raspberryPiZero
address xxxxxxxx.eu10.cp.iot.sap:8883
bridge_protocol_version mqttv311
try_private false
topic # both
log_type all
bridge_cafile /etc/mosquitto/certs/CAcert.pem
这是更新的日志文件:
1574766394: mosquitto version 1.6.7 starting
1574766394: Config loaded from /etc/mosquitto/conf.d/local.conf.
1574766394: Opening ipv4 listen socket on port 8883.
1574766394: Opening ipv6 listen socket on port 8883.
1574766394: Bridge local.raspberrypi.raspberryPiZero doing local SUBSCRIBE on topic #
1574766394: Connecting bridge (step 1) raspberryPiZero (xxxxxxxx.eu10.cp.iot.sap:8883)
1574766395: Connecting bridge (step 2) raspberryPiZero (xxxxxxxx.eu10.cp.iot.sap:8883)
1574766395: Bridge raspberrypi.raspberryPiZero sending CONNECT
1574766395: Received CONNACK on connection local.raspberrypi.raspberryPiZero.
1574766395: Connection Refused: broker unavailable
1574766395: Socket error on client local.raspberrypi.raspberryPiZero, disconnecting.
1574766400: Bridge local.raspberrypi.raspberryPiZero doing local SUBSCRIBE on topic #
1574766400: Connecting bridge (step 1) raspberryPiZero (xxxxxxxx.eu10.cp.iot.sap:8883)
1574766401: Connecting bridge (step 2) raspberryPiZero (xxxxxxxx.eu10.cp.iot.sap:8883)
1574766401: Bridge raspberrypi.raspberryPiZero sending CONNECT
1574766401: Received CONNACK on connection local.raspberrypi.raspberryPiZero.
1574766401: Connection Refused: broker unavailable
1574766401: Socket error on client local.raspberrypi.raspberryPiZero, disconnecting.
1574766406: Bridge local.raspberrypi.raspberryPiZero doing local SUBSCRIBE on topic #
1574766406: Connecting bridge (step 1) raspberryPiZero (xxxxxxxx.eu10.cp.iot.sap:8883)
1574766407: Connecting bridge (step 2) raspberryPiZero (xxxxxxxx.eu10.cp.iot.sap:8883)
1574766407: Bridge raspberrypi.raspberryPiZero sending CONNECT
1574766407: mosquitto version 1.6.7 terminating
【问题讨论】:
-
顺便说一句,您的侦听器条目没有设置任何 TLS 设置,因此您的本地客户端连接不会通过 TLS。 (这与这里提出的实际问题是分开的。)
-
好的,谢谢您的信息。我在 SAP IoT 中生成证书(.pem 文件并为客户端本地代理加密生成 client_cert 和 private_key),CAcert 给了我。所以我必须为本地代理创建 server_cert 和密钥?
-
如何为本地客户端连接设置 TLS 又是一个单独的问题,但您不能使用 SAP 中的任何东西来设置该连接。
-
您是否有使用客户端直接连接到 SAP Broker 时的用户名/密码?
-
不,我没有将客户端连接到 SAP 代理的用户名/密码。当我连接我的客户端时,我使用:来自 SAP 代理的 CA 文件,您可以下载包含 client_cert 和加密的 private_key 的证书。使用 OpenSSL,我解密 private_key 并拥有三个文件(CA 文件、client_cert、private_key),可用于通过端口 8883 将 mqtt 消息发送到 SAP 代理。