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% уверен, что все остальные детали в порядке. Помогите!