Ошибка тайм-аута рукопожатия TLS с приложением MQTT (но OpenVPN работает) - PullRequest
0 голосов
/ 12 марта 2019
  • Я работаю над приложением 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.
  • Скрипт работает нормально, когда я использую Ethernet.Это заставило меня думать, что соединение GPRS может быть слишком медленным и, следовательно, время ожидания.Тем не менее, я запускаю настройку OpenVPN на устройстве, которое прекрасно работает на GPRS-соединении (если я не ошибаюсь, OpenVPN также использует аналогичное рукопожатие)
  • Я пытался найти онлайн-документацию, чтобы увеличить время ожидания, но не смогне найти ни одного.

Устройство развернуто в удаленной области, где 2G является единственной опцией.Также безопасность это огромное дело с этим приложением.Как я могу решить эту проблему?

Любые предложения будут оценены.

...