Я использую брокер 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, может кто-нибудь помочь, пожалуйста!