我想用TLS使用下面的包來實現node.js mqtt客戶端;node.js使用TLS的mqtt客戶端
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()
})
上面的代碼應該如何修改爲在mqtt客戶端上使用TLS?
使用以下命令,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