Версия OpenWRT mosquitto_pub не поддерживает TLS, но мой брокер MQTT требует TLS

Я решил свою проблему, см. Конец этого вопроса для моего решения.

Я новичок в Mosquitto|MQTT, так что извиняюсь за все, что следует.

Установил москит, например, на Ubuntu, и все работает, я могу сделать это, как душе угодно:

mosquitto_pub \
--host mqtt.googleapis.com \
--port 8883 \
--id ${LONG_REGISTRY}/devices/${DEVICE} \
--username unused \
--pw ${PASSWORD} \
--cafile /roots.pem \
--tls-version tlsv1.2 \
--protocol-version mqttv311 \
--debug \
--qos 1 \
--topic /devices/${DEVICE}/events \
--message "$(date --rfc-3339=seconds) Hello Henry!"

Я хотел бы выполнить эквивалент с устройства Onion Omega2, и я использую контейнер работает openwrt-x86-generic-rootfs в качестве прокси-сервера для разработки (возможно, выпуск № 1)

docker run -i -t openwrt-x86-generic-rootfs /bin/ash
mkdir -p /var/lock
opkg update
opkg install mosquitto mosquitto-client libmosquitto

И тогда у меня есть mosquitto_pub а также mosquitto_sub но разные версии для версии Ubuntu выше, флаги вида -f а также --flag не поддерживается. Инструменты не предоставляют никакой информации о версии.

Я думаю, что эти версии устарели, но я не знаю, могу ли я | обновить что-либо более актуальное, чем opkg install выше (выпуск № 2).

Как и в примере с Unix, брокеру Google Cloud IoT, к которому я хотел бы подключиться, требуется TLS (не взаимный), но клиенты OpenWRT Mosquitto, по-видимому, не включают параметры, разрешающие TLS. Нет эквивалента --cafile, Без этого я думаю, что я заблокирован. (выпуск № 3).

Вопросы:

  • Поддерживает ли Mosquitto на устройстве Onion Omega2 TLS?
  • Является ли клиент OpenWRT Mosquitto устаревшим? Могу ли я обновить?
  • Есть ли способ для меня, чтобы подключить лук к MTQQ от Google, используя TLS?

Спасибо!!

На устройстве Onion Omega2 установка Mosquitto предоставляет мне другую / текущую версию инструментов, которая включает cafile флаг, и это сработало для меня. Любопытно, что эта версия инструментов предоставляет помощь, которая предусматривает, например, -u но инструмент примет --username

Итак, я могу запустить следующие команды на Omega2, и обе работают для меня:

mosquitto_pub \
--host mqtt.googleapis.com \
--port 8883 \
--id ${LONG_REGISTRY}/devices/${DEVICE} \
--username unused \
--pw ${PASSWORD} \
--cafile /roots.pem \
--tls-version tlsv1.2 \
--protocol-version mqttv311 \
--debug \
--qos 1 \
--topic /devices/${DEVICE}/events \
--message "Hello Henry!"

а также:

mosquitto_sub \
--host mqtt.googleapis.com \
--port 8883 \
--id ${LONG_REGISTRY}/devices/${DEVICE} \
--username unused \
--pw ${PASSWORD} \
--cafile /roots.pem \
--tls-version tlsv1.2 \
--protocol-version mqttv311 \
--debug \
--qos 1 \
--topic /devices/${DEVICE}/config

Куда:

LONG_REGISTRY=projects/${PROJECT}/locations/${REGION}/registries/${REGISTRY}

И, отвечая на мои вопросы:

  • Инструменты Mosquitto, установленные на Onion Omega2, поддерживают TLS.
  • Я (предполагаю), что клиент OpenWRT Mosquitto устарел; это другое
  • Да, приведенные выше примеры демонстрации и публикации с использованием Cloud IoT

Я не из Google IoT, и думаю, что мне больше всего нужна помощь Mosquitto.

0 ответов

Другие вопросы по тегам