Mosquitto на Home Assistant: Мост к удаленному брокеру MQTT с использованием сертификата сервера, подписанного CA

Как можно настроить Mosquitto (версия, интегрированная в Home Assistant) для подключения в качестве моста к удаленному брокеру с использованием только опции «Сертификат сервера, подписанный ЦС» (как это делает MQTT.fx) с сертификатом Let's encrypt?

Например. http://mqttfx.jensd.de/ имеет эту опцию в настройках подключения и подключения к брокеру работает отлично:

введите здесь описание изображения

Конфигурация выглядит следующим образом:

connection bridge-01
 log_type all
 require_certificate false
 cleansession true
 try_private true
 bridge_protocol_version mqttv311
 bridge_insecure false
 bridge_cafile /etc/ssl/letsencrypt.crt
 address mycompany.com:8883
 remote_clientdid raspi_test
 remote_username raspi
 remote_password password
 topic # out 0

Так же, как намеки:

  • Добавление корневого сертификата Let's Encrypt или сертификата Let's Encrypt Authority X3 (https://letsencrypt.org/certificates/ ), поскольку bridge_cafile не работает с certificate validation error или с socket error on client raspi.local....
  • Домашний помощник работает на Raspberry Pi 4 (просто для полноты картины)
  • Версия брокера Mqtt — Mosquitto 5.1 (плагин Home Assistant)
  • Соединение (clientid, имя пользователя и пароль) в порядке, работает с MQTT.fx

person FranzHuber23    schedule 18.06.2020    source источник


Ответы (1)


Нам помогло использование bridge_capath /etc/ssl/certs/ вместо bridge_cafile /etc/ssl/letsencrypt.crt.

В папке уже много предустановленных доверенных сертификатов и добавленных (корневой сертификат Let's Encrypt или сертификат Let's Encrypt Authority X3).

Хорошая ссылка на другой вопрос, объясняющий это (также мне это не помогло), - это bridge локального москита в облачный брокер.

person FranzHuber23    schedule 18.06.2020
comment
Вы имеете в виду bridge_capath, а не bridge_cafile? Проблема с letsencrypt.crt заключается в том, что он, вероятно, не содержит полной цепочки. - person hardillb; 18.06.2020
comment
@hardillb Извините за орфографическую ошибку. И да, именно в этом была проблема. - person FranzHuber23; 18.06.2020