2016-08-02 15 views
0

Ich verwende MQTT + tls, um das IoT-Gerät mit dem von SIM900 unterstützten GPRS zu verbinden.IoT kann keine Verbindung zum Server mit MQTT + TLS herstellen

Das IoT-Gerät stellt ohne Probleme HTTP- oder HTTP-Verbindungen zum Server her.

Wenn ich jedoch den ssl-Proxy auf dem Server mit Tomcat eingerichtet habe, kann das IoT-Gerät den Status "send ok" erfolgreich erhalten, erhält aber immer den Fehler "wait send ok ack timeout".

Der auf dem Server installierte Wireshark kann keine nützlichen Informationen erfassen.

+0

Sie können keinen HTTPS-Proxy mit Raw MQT verwenden. Verwenden Sie MQTT über Websockets? – hardillb

+0

"Wireshark auf dem Server installiert kann keine nützliche Informationen erfassen" - Ich denke, der Hinweis muss von der Transportschicht kommen. Die Dinge zu suchen ist 1. Kann Ihre MQTT-Client-Seite Server-Zertifikat-Validierung Probleme ignorieren 2. Sind zwei Wege SSL? In diesem Fall identifiziert der Server Ihren Client korrekt? 3. einige Zeit Chiffre Mismatch führt zu Handshaking-Fehlern. In all diesen Fällen können Sie sich auf den TCP-Dump verlassen –

+0

Der Server fordert Client-Zertifikat mit einer CertificateRequest. Kann ich diese Anfrage deaktivieren, sodass der Server kein Client-Zertifikat benötigt? –

Antwort

3

auf SIM900 können Sie nicht TCP + SSL verwenden. Deshalb können Sie es mit HTTPS tun, aber Sie können es nicht mit MQTT + SSL tun. Sie können das MQTT-Protokoll ohne SSL verwenden.

Was ich getan habe, damit dies funktioniert (MQTT + SSL) auf SIM900 war Verschlüsseln der Daten mit wolfSSL und dann senden Sie es über eine TCP, ohne SSL, Verbindung.

Verwandte Themen