Тайм-аут операции - PullRequest
       26

Тайм-аут операции

0 голосов
/ 21 мая 2019

Я пытаюсь (лучшее слово здесь) настроить обмен с брокером сообщений MQTT v3.1 mosquitto ovr TLS, используя самозаверяющую открытую сертификацию SSL.Достаточно просто ... Обычно.Я думаю?

Раньше у меня был скрипт, использующий paho-mqtt, но я дошел до командной строки консоли, пытаясь минимизировать интерпретацию.Я следовал некоторым основным шагам этого сайта https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-the-mosquitto-mqtt-messaging-broker-on-ubuntu-16-04 (если я использую свой сервер на Ubuntu 18, но он не должен сильно меняться ...).

Имея один терминал на сервере с этим

mosquitto_sub -h IP.ad.dr.ess -t test -u "username" -P 'password'

Я попробовал на сервере следующее

mosquitto_pub -h IP.ad.dr.ess -t test -m "hello world" -u 'username' -P 'password'

, оно работало.Тогда на моем компьютере тоже самое, тоже работало.Итак, сервер запущен и работает.Ура!

Теперь к TLS: рукава, готовые к тому, чтобы ребенок работал безопасно, пробуя эту команду на моем компьютере:

mosquitto_pub -h IP.ad.dr.ess -t test -m "hello world with TLS" -p 8883 --cafile /etc/mosquitto/certs/brokerCertificate.crt -u 'username' -P 'password'

При попытке ввода командной строки с моего компьютера, яОчевидно, ожидается, что будет привет мир с TLS, но вместо этого получит ошибку тайм-аута операции.Так что ошибка на самом деле не помогает.

Проверка моего приятеля в LogFile в /var/log/mosquitto/mosquitto.log ... Ничего.Так что в основном я думаю, что он даже не идет к брокеру.

Пробовал ту же команду на самом сервере, она сработала после смены владельца файла на мое имя пользователя вместо root.Что-то вроде обмана, но я понимаю, почему.За исключением того, что чит не будет работать с моего компьютера, имя пользователя на этом компьютере не существует ...

Я искал снова и снова, предлагая идеи, которые я пытался обобщить здесь, напрасно,

Да, и прежде, чем я забыл: - Я разрешил порты ufw 8883 и 1883. - Сертификация брокера была создана с использованием в качестве общего имени IP.ad.dr.ess с использованием метода openssl (по крайней мере, я полагал, чтобыл openssl, как показано ниже https://mcuoneclipse.com/2017/04/14/enable-secure-communication-with-tls-and-the-mosquitto-broker/)

Редактировать: По мере необходимости: mosquitto.conf и последние строки /var/log/mosquitto/mosquitto.log

listener 1883
allow_anonymous false
password_file /etc/mosquitto/passwd

#logging
log_type all
log_dest stdout
log_dest file /var/log/mosquitto/mosquitto.log

listener 8883
cafile /etc/mosquitto/certs/ca.crt
certfile /etc/mosquitto/certs/brokerCertificate.crt
keyfile /etc/mosquitto/certs/server.key
tls_version tlsv1.2
sudo service mosquitto start
● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
   Loaded: loaded (/etc/init.d/mosquitto; generated)
   Active: active (running) since Thu 2019-05-23 13:10:56 EDT; 2s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 25157 ExecStop=/etc/init.d/mosquitto stop (code=exited, status=0/SUCCESS)
  Process: 25457 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/mosquitto.service
           └─25463 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Это приглашение сразу после в файле журнала:

1558631456: mosquitto version 1.6.2 starting
...