尝试使用客户端证书和安装程序连接到IBM Watson物联网平台时出现以下错误mosquitto客户端。相同的证书与node.js客户端工作正常,因此我知道证书很好,只是mosquitto客户端中的一些配置是错误的。
mosquitto_sub -h dumorg.messaging.internetofthings.ibmcloud.com -p 8883 --capath ./certs/ -t "iot-2/type/dumtype/id/dumid/cmd/+/fmt/json" -v -i g:dumorg:dumtype:dummid --cert ./client.crt --key ./client.key
拒绝连接:未经授权。
当我尝试使用auth-token执行相同的连接时,它会经过精细的
$ mosquitto_sub -h dumorg.messaging.internetofthings.ibmcloud.com -p 8883 --capath ./certs/ -t "iot-2/type/dumtype/id/dumid/cmd/+/fmt/json" -v -i g:dumorg:dumtype:dumid -P dumpassword -u use-token-auth
我也能够通过其他客户端使用证书成功连接。我知道证书很好,mosquitto命令与auth令牌一起使用。因此问题是mosquitto中的一些缺失/不正确的配置,因为IoT平台不喜欢用于连接mosquitto的证书?
答案 0 :(得分:1)
似乎mosquitto不支持连接到IBM云上的MQTT代理所需的SNI。手动插入此补丁https://github.com/eclipse/mosquitto/pull/626并构建mosquitto已解决的问题。希望这在不久的将来合并在主要分支。