#ssl #mqtt #mosquitto #broker #bridging
Вопрос:
Позвольте мне сначала объяснить, чего я пытаюсь достичь, а затем я подробно расскажу о том, что я уже пробовал.
Итак, у нас есть виртуальная машина, которая находится на нашей территории, и другая виртуальная машина, которая находится на территории заказчика. Доступ к этим виртуальным машинам доступен только для определенных IP-адресов. Таким образом, мы могли бы сказать, что они достаточно безопасны для нашего варианта использования.
Данные из среды клиента проходят через нашу виртуальную машину и поступают в нее через брокера mosquitto, настроенного в обеих этих средах. Это делается с помощью брокерского моста, который отлично работает. Однако, поскольку этот мост проходит через Интернет, мы хотим убедиться, что данные зашифрованы и что никто не сможет перехватить их через Интернет и использовать эти данные вредоносным способом.
Для достижения этой цели мы используем шифрование SSL-брокера. Первый метод, который я попробовал, — это использовать метод шифрования PKS.
Вот конфигурация брокера в клиентской среде.
listener 8883
connection bridgetest
address 147.1.20.1:8883
bridge_identity bridge1
bridge_psk 123456789
topic # both
А вот конфигурация брокера в нашей среде.
listener 8883
psk_hint SAAS Deployments
psk_file c:DemoCompanypsk_file.txt
Содержание psk_file.txt очень просты и такие же, как идентификатор моста и bridge_psk, предоставленные в конфигурации клиентской среды.
Проблема, с которой я здесь сталкиваюсь, заключается в том, что, хотя я изменяю идентификатор bridge_identity или bridge_psk в среде клиента на что-то, чего нет в psk_file.txt, Я все еще могу подключить 2 брокера через мост. Мое понимание этого заключалось в том, что если я изменю bridge_psk на какой-то случайный шестнадцатеричный код, соединение должно быть отклонено. Но, похоже, этого не происходит. Я делаю что-то не так или что-то упускаю здесь?
Ответ №1:
Следующие файлы конфигурации работают для меня со сборками версии 2.0, поставляемыми из mosquitto PPA в Ubuntu
Клиентский брокер:
listener 1889
connection bridge
address 127.0.0.1:1890
bridge_identity bridge1
bridge_psk 123456789987654321
topic # both 0
Мостовой брокер
listener 1890
psk_hint my test bridge
psk_file /temp/psk/psk_file.txt
use_identity_as_username true
use_identity_as_username
Требуется начиная с версии Mosquitto v2 и далее allow_anonymous
по умолчанию значение false
Комментарии:
1. Спасибо вам за ваш ответ. Я попробую это и скоро обновлю здесь.
2. Кроме того, моя конфигурация-это брокер mosquitto версии 3.1.1 в Windows 10
3. Ваш номер версии неверен, 3.1.1 — это версия спецификации протокола MQTT. v2.0.9-это последняя доступная версия от eclipse.org
4. ДА. Это сработало для меня. По какой-то причине заставить это работать на порту 8883 все еще кажется очень хлопотным. Но в порту 1890 года это сработало как заклинание.
5. Привет. У меня есть еще одно сомнение. Если я добавлю больше пользователей в psk_file.txt на моем брокере(сервере), как мне перезагрузить этот файл без перезапуска моего брокера mosquitto? Моя главная цель-избежать нарушения всех уже подключенных брокерских мостов