我正在尝试使用 MQTT创建从同上到Azure IoT 中心的传出连接。我们负责 Ditto,而其他人(对数字孪生实时数据感兴趣)负责 Azure IoT Hub。连接 Azure IoT 中心(在连接微服务中)时出现以下错误:Not authorized to connect (5)
. 我们还尝试与mosquitto_pub连接,并在省略该-i client-id
选项时收到相同的错误。其他一切似乎都很好。
一些额外的信息:
- 这是目前有效的 mosquitto_pub 命令:
mosquitto_pub -h [hostname] -p [port] -t [topic] -m "" -u [username] -P [password] --cafile cert.cer -i [deviceName]
- 我们已经获得了主机名、端口、主题、用户名(这是一个包含斜杠、破折号和相等运算符的长字符串)、密码(也是一个包含空格、百分号和相等运算符的长字符串)和一个证书文件。我已经对用户名和密码进行了 URL 编码,并将它们拼接在连接 url 中,如同上页面 ( https://www.eclipse.org/ditto/connectivity-protocol-bindings-mqtt.html ) 中所述:ssl: //[url-encoded-username]:[url-encoded-password]@[hostname]:[port-number].
- 我已添加证书,但不再收到证书错误(“无法找到请求目标的有效证书路径”)。
有人对此有经验吗?
也许解决方案是使用另一个协议(例如 amqp)?
希望我没有错过互联网上的任何其他相关问题或信息。如果是这样,请告诉我在哪里可以找到它。
谢谢