Я пытаюсь реализовать client.js mqtt клиент с TLS, используя пакет ниже;node.js mqtt client using TLS
https://www.npmjs.com/package/mqtt#client
Код для запуска клиента MQTT без TLS выглядит следующим образом;
var mqtt = require('mqtt')
var client = mqtt.connect('mqtt://test.mosquitto.org')
client.on('connect', function() {
client.subscribe('presence')
client.publish('presence', 'Hello mqtt')
})
client.on('message', function (topic, message) {
// message is Buffer
console.log(message.toString())
client.end()
})
Как изменить код, чтобы использовать TLS на клиенте mqtt?
Брокер mosca MQTT был запущен как автономный, используя приведенную ниже команду;
mosca --key ./tls-key.pem --cert ./tls-cert.pem --http-port 3000 --http-bundle --http-static ./ | pino
Это не сработает, потому что брокер использует самоподписанный сертификат, чтобы клиент не знал, чтобы ему доверять. – hardillb
@ user91579631 При использовании самоподписанных сертификатов вы можете передать опцию «rejectUnauthorized: false» в качестве опции. Изменить: я добавил информацию в ответ. – notion
Кажется, что клиенту не нужно знать сертификат и ключ, используемые брокером. Благодарю. – user781486