|
|||||||
SETTING_MOSQUITTO
Время создания: 07.12.2024 17:49
Автор: alensav
Текстовые метки: SETTING_MOSQUITTO
Раздел: MOSQUITT_SETTING
Запись: alensav/MyTetra2/main/base/173358297650m0vbj3g2/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
1. SETTING_MOSQUITTO https://www.8host.com/blog/ustanovka-brokera-soobshhenij-mosquitto-v-ubuntu-18-04/ 2. https://www.ekzorchik.ru/2019/05/how-to-enable-mqtt-server-on-ubuntu-18-04/ https://hostadvice.com/how-to/web-hosting/ubuntu/how-to-install-and-configure-mosquitto-mqtt-on-your-ubuntu-18-04-server/# 4. https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-the-mosquitto-mqtt-messaging-broker-on-ubuntu-18-04-quickstart?_x_tr_sl=en&_x_tr_tl=ru&_x_tr_hl=ru&_x_tr_pto=sc ================== УЧЕБНИК Как установить и защитить Mosquitto MQTT Messaging Broker в Ubuntu 18.04 [Краткое руководство] Опубликовано 16 июля 2018 г.
Брайан Бушерон MQTT — это протокол обмена сообщениями между машинами, разработанный для обеспечения легкой публикации/подписки для устройств «Интернета вещей». Mosquitto — это популярный сервер MQTT (или брокер , на языке MQTT), который имеет большую поддержку сообщества и прост в установке и настройке. В этом кратком руководстве по быстрому старту мы установим и настроим Mosquitto и используем SSL-сертификаты Let's Encrypt для защиты нашего трафика MQTT. Если вам нужно более подробное освещение любого из шагов, пожалуйста, ознакомьтесь со следующими руководствами:
Перед началом этого урока вам понадобится:
Ш аг 1 — Установка программного обеспечения Сначала мы установим пользовательский репозиторий программного обеспечения, чтобы получить последнюю версию Certbot, клиента Let's Encrypt:
Копировать Нажмите ENTER, чтобы принять, затем установите программные пакеты для Mosquitto и Certbot:
Копировать Далее мы получим наш SSL-сертификат. Ш аг 2 — Загрузка SSL-сертификата Откройте порт 80в вашем брандмауэре:
Копировать Затем запустите Certbot, чтобы получить сертификат. Не забудьте подставить здесь доменное имя вашего сервера:
Копировать Вам будет предложено ввести адрес электронной почты и согласиться с условиями обслуживания. После этого вы должны увидеть сообщение об успешном завершении процесса и о том, где хранятся ваши сертификаты. Далее мы настроим Mosquitto для использования этих сертификатов. Сначала мы создадим файл паролей, который Mosquitto будет использовать для аутентификации подключений. Используйте mosquitto_passwdдля этого, убедившись, что заменили свое собственное предпочитаемое имя пользователя:
Копировать Вам будет дважды предложено ввести пароль. Теперь откройте новый файл конфигурации для Mosquitto:
Копировать Откроется пустой файл. Вставьте следующее: /etc/mosquitto/conf.d/default.conf allow_anonymous false password_file /etc/mosquitto/passwd listener 1883 localhost listener 8883 certfile /etc/letsencrypt/live/mqtt.example.com/cert.pem cafile /etc/letsencrypt/live/mqtt.example.com/chain.pem keyfile /etc/letsencrypt/live/mqtt.example.com/privkey.pem listener 8083 protocol websockets certfile /etc/letsencrypt/live/mqtt.example.com/cert.pem cafile /etc/letsencrypt/live/mqtt.example.com/chain.pem keyfile /etc/letsencrypt/live/mqtt.example.com/privkey.pem Обязательно замените доменное имя, которое вы использовали в Шаге 2, на mqtt.example.com. Сохраните и закройте файл, когда закончите. Этот файл выполняет следующие действия:
Перезапустите Mosquitto, чтобы изменения конфигурации вступили в силу:
Копировать Проверьте, запущена ли служба снова:
Копировать Output● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker Loaded: loaded (/etc/init.d/mosquitto; generated) Active: active (running) since Mon 2018-07-16 15:03:42 UTC; 2min 39s ago Docs: man:systemd-sysv-generator(8) Process: 6683 ExecStop=/etc/init.d/mosquitto stop (code=exited, status=0/SUCCESS) Process: 6699 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS) Tasks: 1 (limit: 1152) CGroup: /system.slice/mosquitto.service └─6705 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf Статус должен быть active (running). Если это не так, проверьте файл конфигурации и перезапустите снова. Дополнительная информация может быть доступна в файле журнала Mosquitto:
Копировать Если все в порядке, используйте команду ufw, чтобы разрешить двум новым портам проходить через брандмауэр:
Копировать Теперь, когда Mosquitto настроен, мы настроим Certbot для перезапуска Mosquitto после обновления наших сертификатов. Ш аг 4 — Настройка продлений Certbot Certbot автоматически обновит наши SSL-сертификаты до истечения срока их действия, но после этого ему необходимо указать, что необходимо перезапустить службу Mosquitto. Откройте файл конфигурации продления Certbot для вашего доменного имени:
Копировать Добавьте следующую renew_hookопцию в последнюю строку: /etc/letsencrypt/renewal/mqtt.example.com.conf renew_hook = systemctl restart mosquitto Сохраните и закройте файл, затем выполните тестовый прогон Certbot, чтобы убедиться в правильности синтаксиса:
Копировать Если вы не видите ошибок, все готово. Давайте теперь протестируем наш сервер MQTT. Ш аг 5 – Тестирование Mosquitto На шаге 1 мы установили несколько клиентов командной строки MQTT. Мы можем подписаться на тему test на прослушивателе localhost следующим образом:
Копировать И мы можем опубликовать с помощью mosquitto_pub:
Копировать Чтобы подписаться с помощью защищенного прослушивателя на порту 8883, выполните следующие действия:
Копировать И вот как вы публикуете данные для защищенного слушателя:
Копировать Обратите внимание, что мы используем полное имя хоста вместо localhost. Поскольку наш SSL-сертификат выпущен для mqtt.example.com, при попытке безопасного подключения к localhostмы получим сообщение об ошибке, сообщающее, что имя хоста не соответствует имени хоста сертификата. Для проверки функциональности веб-сокета мы будем использовать публичный клиент MQTT на основе браузера. Откройте утилиту клиента Eclipse Paho javascript в вашем браузере и заполните информацию о подключении следующим образом:
Остальные поля можно оставить со значениями по умолчанию. После нажатия Connect клиент подключится к вашему серверу. Вы можете публиковать и подписываться, используя панели Subscribe и Publish Message под панелью Connection . Мы уже настроили и протестировали безопасный, защищенный паролем и зашифрованный SSL сервер MQTT. Он может служить надежной и безопасной платформой обмена сообщениями для вашего IoT, домашней автоматизации или других проектов. Спасибо за обучение в сообществе DigitalOcean. Ознакомьтесь с нашими предложениями по вычислениям, хранению, сетевым технологиям и управляемым базам данных. Узнайте больше о нашей продукции Об авторах Брайан Бушерон Автор Все еще ищете ответ? Задать вопрос Поиск дополнительной помощи Было ли это полезно? ДаНет
Комментарии 4 комментария В этом текстовом поле по умолчанию для форматирования ответа используется Markdown . Вы можете ввести !ref в этом текстовом поле, чтобы быстро найти наш полный набор учебных пособий, документации и предложений на торговой площадке, а затем вставить ссылку! Войдите или зарегистрируйтесь, чтобы оставить комментарий Демоти •2 ноября 2018 г. При работе с сертификацией я столкнулся с несколькими ошибками. Команда: sudo certbot certonly --standalone --preferred-challenges http -d mqtt.example.com Ошибка: Проблема привязки к порту 80: Не удалось привязаться к IPv4 или IPv6. Команда: sudo certbot renew --dry-run Ошибки: Попытка обновить сертификат ( mqtt.example.com ) из /etc/letsencrypt/renewal/mqtt.example.com.conf привела к непредвиденной ошибке: Проблема привязки к порту 80: Не удалось привязать к IPv4 или IPv6… Пропуск. Пробный запуск: пропуск команды deploy hook: systemctl restart mosquitto Вам нужно остановить веб-сервис. Для меня это было «service apache2 stop»
гильеб •28 июня 2021 г. Все работает отлично, за исключением клиента Eclipse Paho javascript. Кнопка «Подключиться» выдает ошибку на консоли javascript: Uncaught ReferenceError: connectionToggle is not defined И, очевидно, соединение не происходит.
дкиви •14 июня 2019 г. Все работает гладко, за исключением того, что я не могу подключиться безопасно через порт 8883. Я получаю сообщение «Ошибка: произошла ошибка TLS». Он работает через 1883, используя домен, но не 8883. /etc/ssl/certs/ пуст, должно ли здесь что-то быть?
alex183e2b69d92 •9 января 2019 г. При обновлении сертификатов SSL команды перезапуска Mosquitto не выполняются, поскольку они не дожидаются повторного запуска процесса, вам необходимо использовать (не самый чистый способ перезапуска, но он хотя бы работает…) renew_hook = systemctl остановить mosquitto;спящий режим 1;systemctl запустить mosquitto команды сна делают здесь магию. Если вы найдете другой способ сделать это, пожалуйста, поделитесь им.
Данная работа лицензирована в соответствии с лицензией Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|