Ошибка сокета на клиенте <unknown>Mosquitto Tls Php - PullRequest
0 голосов
/ 08 мая 2020

Я использую брокер mqtt на raspberry и клиент mqtt на удаленном сервере, который публикует темы, код клиента находится в PHP, и он отлично работает, когда я не использую TLS. Мне удалось заставить клиента работать с TLS, и он работал хорошо, но это делается через специальный клиентский интерфейс c.

затем я пытаюсь ie использовать tls с моим php клиентом, без логин-пароль, добавив две конфигурации строки tls в мой код php.

php клиент publi sh код:

    define('BROKER', 'ip mqtt broker raspberry');
    define('PORT', 8883);
    define('CLIENT_ID', "app");


    $message = 'xxxxxx';

    $topic = 'xxxxxxxxx';

    $client = new Mosquitto\Client(CLIENT_ID);
    $client->setTlsCertificates('ca.crt', 'client.crt', 'client.key', null);  to use 
    $client->setTlsOptions(Mosquitto\Client::SSL_VERIFY_PEER  ,"tlsv1.2",null);
    $client->connect(BROKER, PORT, 60);             
    $client->publish($topic, $message, 0, false);

файл mosquitto.config:

 pid_file /var/run/mosquitto.pid
 persistence true
 persistence_location /var/lib/mosquitto/
 include_dir /etc/mosquitto/conf.d

 port 8883

 cafile   /etc/mosquitto/ca_certificates/ca.crt
 certfile /etc/mosquitto/certs/server/mqtt_server.crt
 keyfile  /etc/mosquitto/certs/server/mqtt_server.key
 require_certificate true
 #tls_version tlsv1.2
 log_type all

он больше не работает, и я получаю следующую ошибку из systemctl status mosquitto на малине:

May 08 00:12:16 B827xxxxFEF65A01 mosquitto[9482]: 1588893136: 
Sending CONNACK to ::1 (0, 5)
May 08 00:12:16 B827xxxxxxF65A01 mosquitto[9482]: 1588893136: Socket 
error on client <unknown>, disconnecting.
May 08 00:19:47 B827xxxxFEF65A01 mosquitto[9482]: 1588893587: New 
connection from ip_client on port 8883.
May 08 00:19:49 B827xxxxFEF65A01 mosquitto[9482]: 1588893589: Socket 
error on client <unknown>, disconnecting.

Напоминаю, что сценарий php отлично работает без TLS.

CONNACK to :: 1 (0, 5) обычно означает, что это ошибка авторизации, но я не могу найти, где !! Я использую тот же ключ и crt для клиента, который работает нормально, может быть, потому, что он не на малине, поэтому он не на localhost, может кто-нибудь помочь, пожалуйста!

...