很奇怪的问题
我有使用 TLS 的 mosquitto 代理
它可以通过为“启用 SSL/TLS、TLSv1.2、CA 证书文件”设置的 MQTTfx 客户端正确访问
openwrt mosquitto 客户端发布使用相同的 ca.crt 文件
# mosquitto_pub -h x.x.x.x -p 8883 --cafile /etc/mosquitto/certs/ca.crt -i 1.1.1.1 -t test -m 123 -d
返回
Client 1.1.1.1 sending CONNECT
Error: A TLS error occurred.
在另一端,经纪人显示
OpenSSL Error: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
OpenSSL Error: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure
Socket error on client (null), disconnecting.
让我感到困惑的是 MQTTfx 客户端反而被接受,并且它使用相同的证书......!
New connection from y.y.y.y on port 8883.
New client connected from y.y.y.y as 180ce1c04c1944e1964608221efbcf0a (c1, k60).
Sending CONNACK to 180ce1c04c1944e1964608221efbcf0a (0)
应该意味着证书有效且受信任……不是吗? 其他客户端使用完全相同的证书文件有什么问题?!?!
最佳答案
...最后使用 --insecure 选项完成了工作。
表示验证服务器证书中的服务器主机名。 很好,虽然在生产环境中使用此选项可能会使加密的使用无效。
关于ssl - Mosquitto TLS,适用于 MQTTfx 但不适用于 mosquitto_pub(tlsv1 警报未知 ca),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46916203/