Ошибка сокета подключения Mosquitto MQTT (подключение от ПЛК)

Я привык подключать PLC к брокеру Mosquitto в облаке VPS через порт 8883 (безопасный). Но на этот раз функциональный блок всегда выдает ошибку 80E4 (действительный CA не найден). Я проверил все условия для подключения к MQTT из ПЛК, они верны.

Я не думаю, что проблема возникает из-за версий брокера или TLS, потому что я могу подключиться к нему с помощью других приложений с tls v1.1 и v1.2, когда я пытаюсь подключиться с TLS v1.0 (временно отключите TLS v1.0 для проверки) (приложением mqttfx или C#), брокер показывает ошибку "протокол неподдержки". Но когда я подключаюсь из ПЛК, брокер просто показывает ошибку:

Msgstr "Новое соединение с IP на порту 8883. Ошибка сокета на клиенте <'Неизвестно'>, отключение".

Эта ошибка сокета происходит только при подключении из ПЛК. Итак, что является основной причиной ошибки сокета и что я должен сделать, чтобы найти решение проблемы? Я использую PLC S7-1500 Siemens.

Благодарю.

0 ответов

После ручной проверки с помощью wireshark я обнаружил, что версия сертификата не соответствует конфигурации сервера и конфигурации процессора. Поскольку ЦП поддерживает только сертификат x.509 v3, но серверный сертификат x509 v1, это является причиной разрыва соединения.

Чтобы установить защищенную связь MQTT между SIMATIC S7-CPU (клиент MQTT) и брокером MQTT в вашей сети, должны быть выполнены следующие критерии:

  • MQTT-брокер установлен и предварительно настроен для процесса TLS
  • Требуемый сертификат CA брокера MQTT под рукой
  • Время дня процессора было установлено на текущее время.

Сертификат всегда содержит период действия, в течение которого сертификат действителен. Чтобы иметь возможность шифрования с помощью сертификата, время дня S7-CPU также должно быть в пределах этого периода действия. На совершенно новом S7-CPU или после полной перезагрузки S7-CPU внутренним часам присваивается значение по умолчанию, которое выходит за пределы срока действия сертификата. Затем сертификат помечается как недействительный.

Еще одна вещь, которую стоит рассмотреть, - сконфигурировали ли вы MQTT-брокер таким образом, чтобы также требовалась аутентификация клиента MQTT, тогда вам также необходимо импортировать сертификат клиента.

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