MQTT应用程序的TLS握手超时错误(但OpenVPN有效)

时间:2019-03-12 16:04:36

标签: linux ssl mqtt paho

  • 我正在开发一个IoT应用程序,正在将数据从IoT设备发送到MQTT代理。
  • 我让它在端口1883(未加密)上工作,因此决定切换到 端口8883(加密)。我生成了必要的证书。
  • 我想指出的是,数据正在通过GPRS发送 连接。
  • 此外,我正在使用paho-mqtt库,该设备是功能强大的单板计算机。

    现在,当我使用TLS运行相同的脚本时,出现以下错误。

    Traceback (most recent call last):
    File "test-client.py", line 61, in <module>
    main() 
    File "test-client.py", line 33, in main
    client.connect("test.myiot.io", 8883, 1)
    File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", 
    line 839, in connect
    return self.reconnect()
    File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", 
    line 994, in reconnect
    sock.do_handshake()
    File "/usr/lib/python2.7/ssl.py", line 788, in do_handshake
    self._sslobj.do_handshake()
    ssl.SSLError: ('_ssl.c:565: The handshake operation timed out',)
    

这是我测试并观察到的一些东西

  • 在GPRS上运行时出现上述错误。
  • 当我使用以太网时,脚本运行良好。这让我认为GPRS连接可能太慢,因此超时。但是,我在设备上运行了一个OpenVPN设置,该设置可以在GPRS连接上正常运行(如果我没记错的话,OpenVPN也使用类似的握手方式)
  • 我试图找到在线文档来增加超时时间,但找不到任何文档。

该设备部署在唯一选择2G的偏远地区。同样,此应用程序的安全性至关重要。我怎么解决这个问题?

任何建议将不胜感激。

0 个答案:

没有答案