имел mosquitto 1.x, отлично работающий на Debian 10 (с SSL). Вместе с обновлением до Debian 11 вышел mosquitto 2.0.11-1.
Мне пришлось внести пару изменений в файл конфигурации, чтобы он вообще запустился. Уже прочитано https://mosquitto.org/documentation/migrating-to-2-0/
Для тестирования я в настоящее время запускаю демон с помощью этой команды в интерактивном режиме:
/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf -v
Но теперь клиенты не могут больше подключаться, независимо от их типа клиента (у меня их великое множество). Для каждой попытки подключения клиента я получаю запись в журнале, подобную этой:
1629544574: новое подключение от x.x.x.x:54278 через порт 8883.
1629544574: клиент <неизвестно> отключен из-за ошибки протокола.
Это основной файл конфигурации:
# Поместите вашу локальную конфигурацию в /etc/mosquitto/conf.d/
#
# Полное описание конфигурационного файла находится по адресу
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
pid_file /var/run/mosquitto/mosquitto.pid
постоянство верно
расположение_постоянства /var/lib/mosquitto/
#Простой
#слушатель 1883
#SSL
слушатель 8883
#keepalive_interval 600
# Не требовать аутентификации
allow_anonymous правда
log_type все
файл log_dest /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
А это SSL (единственный файл в conf.d):
кафе-файл /etc/mosquitto/certs/ca.cer
файл сертификата /etc/mosquitto/certs/mqtt.cer
ключевой файл /etc/mosquitto/certs/mqtt.key
dhparamfile /etc/mosquitto/certs/dhparam.pem
#tls_версия tlsv1.2
Все файлы, связанные с сертификатом, существуют:
root@linux06:/etc/mosquitto# ls -l сертификаты/
всего 28
-rw-r--r-- 1 mosquitto mosquitto 3915 28 апр 02:36 ca.cer
-rw-r----- 1 mosquitto mosquitto 424 авг 21 12:45 dhparam.pem
-rwxr-xr-- 1 mosquitto mosquitto 3546 28 апреля 02:36 mqtt.cer
-rwxr-x--- 1 mosquitto mosquitto 3243 28 апреля 02:36 mqtt.key
-rwxr-x--- 1 mosquitto mosquitto 7528 28 апреля 02:36 mqtt.p7b
-rw-r--r-- 1 mosquitto mosquitto 130 28 апр 02:36 README
Принятие всех сертификатов в клиентах, к сожалению, не помогает. Таким образом, у меня хотя бы было с чего начать.
Когда я удаляю файл конфигурации ssl, следовательно, отключаю SSL, клиент может нормально подключаться при попытке простого подключения.
Вот что я нахожу немного странным. Этого не должно быть, не так ли?
root@linux06:~# openssl s_client -connect 127.0.0.1:8883 -showcerts
ПОДКЛЮЧЕН(00000003)
написать: errno=104
---
нет доступного однорангового сертификата
---
Имена ЦС сертификата клиента не отправлены
---
Рукопожатие SSL прочитало 0 байт и записало 283 байта
Проверка: ОК
---
Новый, (НЕТ), Шифр (НЕТ)
Безопасное повторное согласование НЕ поддерживается
Сжатие: НЕТ
Расширение: НЕТ
ALPN не согласован
Предварительные данные не были отправлены
Подтвердите код возврата: 0 (хорошо)
---
root@linux06:~#
С сертификатом все еще все в порядке (хотя срок его действия скоро истечет; замаскировано небольшое количество содержимого):
root@linux06:~# openssl x509 -text -in /etc/mosquitto/certs/mqtt.cer
Сертификат:
Данные:
Версия: 3 (0x2)
Серийный номер:
18:00:00:02:07:9а:37:38:09:44:97:а3:6в:00:01:00:00:02:07
Алгоритм подписи: sha512WithRSAEncryption
Эмитент: DC = org, DC = замаскированный, DC = замаскированный, CN = замаскированный
Срок действия
Не раньше: 26 августа 13:20:32 2019 GMT
Не после: 25 августа 13:20:32 2021 GMT
Субъект: C = DE, ST = NA, L = нигде, OU = замаскирован
Информация об открытом ключе субъекта:
Алгоритм открытого ключа: rsaEncryption
Открытый ключ RSA: (4096 бит)
Модуль:
00:c3:55:4a:ec:47:ba:65:ee:1c:b4:ac:72:73:0d:
4b:c3:ae:94:8c:35:d8:1c:99:7e:0e:d9:12:3b:cf:
c9:6f:2a:f1:c0:e6:10:3e:52:df:a7:5a:36:73:6a:
Я в своем уме. Кто-нибудь знает, почему это не удается? Я просмотрел пример конфигурации, разрешения файловой системы и веб-страницы. Но я не могу найти причину этой неудачи.