mosquitto_pub выдает следующую ошибку: 1408F10B: подпрограммы SSL: ssl3_get_record: неправильный номер версии - PullRequest
0 голосов
/ 09 сентября 2018

Я настроил mosquitto для прослушивания через порт 8883 и сгенерировал letsencrypt SSL-сертификаты для сервера. Пока все хорошо.

Я могу успешно проверить соединение TLS: openssl s_client -connect mqtt.example.com:8883 дает мне сертификат и информацию о сеансе, а журналы mosquitto сообщают об успешном соединении.

Я также могу успешно опубликовать сообщение, используя библиотеку pyho python.

Однако, когда я пытаюсь с mosquitto_pub, он делает это:

$ mosquitto_pub -h mqtt.example.com -p 8883 -u foobar -P "" -t foobar -m test
Client connection from XX.XX.XX.XX failed: error:1408F10B:SSL routines:ssl3_get_record:wrong version number.

Кажется, это общая проблема, но ни одно из решений, которые я нашел при поиске в Интернете, кажется, не подходит мне, потому что они обычно включают в себя идентификацию клиента с помощью самоподписанного сертификата .

Так что я в тупике. Кто-нибудь знает, что вызывает эту ошибку?

1 Ответ

0 голосов
/ 10 сентября 2018

Чтобы mosquitto_pub попытался запустить SSL-соединение, вам нужно указать либо --cafile, либо --capath, который указывает местоположение сертификатов CA для проверки посредника.

Без этих параметров ни mosquitto_pub, ни mosquitto_sub не будут пытаться запустить сеанс SSL, а вместо этого попытаться подключиться с помощью обычного незашифрованного MQTT-соединения.

В большинстве дистрибутивов Linux вы можете использовать --capath и указывать на /etc/ssl/certs directory

...