我在尝试使用客户端证书和蚊子客户端连接到IBM Watson物联网平台时出现以下错误。同样的证书与node.js客户端工作得很好,因此我知道证书是好的,只是蚊子客户端中的一些配置是错误的。
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我还可以通过另一个客户端使用证书成功连接。我知道证书是好的,而且蚊子命令可以和auth token一起工作。因此,问题是由于哪种IoT平台不喜欢用于连接蚊子的证书,所以在蚊子中缺少/不正确的配置?
发布于 2018-01-08 19:42:53
似乎蚊子不支持SNI,而SNI是连接到IBM云上的MQTT代理所必需的。手动插入此补丁https://github.com/eclipse/mosquitto/pull/626并构建蚊子解决了此问题。希望这在不久的将来被合并到主要分支机构。
https://stackoverflow.com/questions/48144472
复制相似问题