Mqtt клиент UNABLE_TO_VERIFY_LEAF_SIGNATURE
Я бегу mosca
Брокер на моем бэкэнде, и я использую стандарт mqtt
npm lib. Я столкнулся с проблемой, которую я не могу понять, что происходит при настройке SSL. Сгенерировали самоподписанные сертификаты ca, server и client и настроили mosca примерно так
var mosca = require('mosca');
var path = require('path');
var setup = {
port: 8883,
secure: {
keyPath: path.join(__dirname, 'server.key'),
certPath: path.join(__dirname, 'server.crt'),
caPaths: path.join(__dirname, 'ca.crt'),
requestCert: true,
rejectUnauthorized: false
}
}
var server = new mosca.Server(setup);
server.on('ready', function () {
console.log('rdy');
});
Брокер Mosca не сообщает о проблемах и без проблем работает с этими сертификатами. Однако при использовании mqtt
клиент lib для подключения к этому брокеру получаю следующее
var mqtt = require('mqtt');
var fs = require('fs');
var tls = require('tls');
var client = mqtt.connect('ssl://localhost:8883', tls.connect({
key: fs.readFileSync(path.join(__dirname, 'client.key')),
ca: fs.readFileSync(path.join(__dirname, 'ca.crt')),
cert: fs.readFileSync(path.join(__dirname, 'client.crt')),
passphrase: 'client'
}));
client.on('error', function (err) {
console.log(err)
});
При попытке подключения возникает событие ошибки со следующей ошибкой:
[Error: unable to verify the first certificate] code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE'
Я пробовал настройку process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
но безрезультатно.
Клиентские сертификаты были протестированы на разных клиентах, и он работает без проблем. Что я здесь не так делаю?
версия nodejs: 0.12.7 версия npm mosca: 0.32.1, версия npm mqtt: 1.4.3