【发布时间】:2016-08-02 06:28:06
【问题描述】:
我使用 MQTT+tls 将 IoT 设备连接到具有 SIM900 支持的 GPRS 的服务器。
物联网设备在 HTTP 或 HTTPs 上连接到服务器没有任何问题。
但是,当我用Tomcat在服务器上设置ssl代理时,物联网设备可以成功获得“send ok”状态,但总是出现“wait send ok ack timeout”错误。
安装在服务器上的wireshark无法捕获任何有用的信息。
【问题讨论】:
-
您不能将 HTTPS 代理与原始 MQT 一起使用。您是否在 websockets 上使用 MQTT?
-
“安装在服务器上的wireshark无法捕获任何有用的信息”——我认为线索必须来自传输层。要寻找的东西是 1. 您的 MQTT 客户端可以忽略服务器证书验证问题 2. 是否在做双向 SSL?在那种情况下,服务器是否正确识别您的客户端? 3. 有时密码不匹配导致握手错误。在所有这些情况下,您都可以依赖 TCP 转储
-
服务器通过 CertificateRequest 请求客户端证书。我可以禁用此请求以使服务器不需要客户端证书吗?
-
MQTT 客户端将设法与 tomcat 进行 SSL 握手,但由于您无法通过 HTTP 代理代理 MQTT,因此无法进一步