phpMQTT не может подключиться к CA Cert проблема (я думаю)

Я пытаюсь использовать phpmqtt для подключения к удаленному брокеру, который я настроил.

Я могу использовать командную строку для sub/pub:

mosquitto_pub -h mqtt.widgiot.co.uk -t test -m "hello again" -p 8883 --cafile /etc/ssl/certs/ca-bundle.crt -u "[user]" -P "[password]"

и я могу использовать веб-сокеты для подключения с помощью mqtt-admin на 8083

У меня проблемы с использованием phpmqtt для подключения к брокеру, хотя. Вот что у меня есть:

require("phpMQTT/phpMQTT.php");

        $server = "mqtt.widgiot.co.uk";   
        $port = 8883;                  
        $username = "[username]";                 
        $password = "[password]";                
        $client_id = "phpMQTT-publisher";
        $cafile = "/etc/ssl/certs/ca-bundle.crt";
        $mqtt = new phpMQTT($server, $port, $client_id,$cafile);
        if ($mqtt->connect(true, NULL, $username, $password)) {
            $mqtt->publish("test", "Hello World! at " . date("r"), 0);
            $mqtt->close();
        } else {
            echo "Time out!\n";
        }

И за это я получаю:

PHP Warning:  stream_socket_client(): unable to connect to tls://mqtt.widgiot.co.uk:8883 (Connection refused)

Я предполагаю, что это проблема с переменной $cafile, которую я не знал, как отформатировать. Я искал в Интернете пример, но не могу его найти. Я пытался (на основе значения терминала -cafile:

/etc/ssl/certs/ca-bundle.crt
ca-bundle.crt
mqtt.widgiot.co.uk/etc/ssl/certs/ca-bundle.crt
tls://mqtt.widgiot.co.uk/etc/ssl/certs/ca-bundle.crt ...

ничего не работает - такая же ошибка!

Что я должен использовать в качестве значения $cafile? Я на 99% уверен, что все остальные детали в порядке. Помогите!

0 ответов

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