использование mosquitto_sub с --insecure - PullRequest
0 голосов
/ 15 января 2020

Прямо сейчас я должен сделать начальный тест брокера mqtt (ssl). Однако сейчас у меня нет действительных сертификатов хранилища доверенных сертификатов, однако я хотел бы протестировать базовое c подключение, игнорируя ошибки SSL в отношении проверки имени хоста, проверки сертификата и т. Д. c.

К сожалению, я не являюсь успешно, даже с брокером, я знаю, что он работает.

Что я делаю:

mosquitto_sub -h the_host -p 8883 -t '#' -v -u myUser -P myPass --insecure -d --capath /etc/ssl/certs

В соответствии с man-страницей, я просто использую --capath, чтобы определить, что это TLS-соединение, хорошо зная, что необходимый root сертификат здесь недоступен.

Что я получаю, это:

Client mosqsub|11262-csbox sending CONNECT
Error: A TLS error occurred.

Есть идеи, что я делаю неправильно?

1 Ответ

0 голосов
/ 15 января 2020

Использование --insecure просто отключает проверку имени хоста в сертификате, представленном брокером. Это не устраняет необходимость иметь копию сертификата CA, подписавшего сертификат брокера.

Так что, если /etc/ssl/certs не содержит соответствующий сертификат CA, то соединение не будет установлено.

При необходимости вы можете использовать что-то вроде openssl s_client для загрузки цепочки сертификатов непосредственно из брокера, затем вы можете указать на этот файл с опцией --cafile вместо опции --capath.

...