【发布时间】:2016-09-23 23:05:44
【问题描述】:
我通过链接https://mosquitto.org/man/mosquitto-tls-7.html生成了CA、服务器和客户端证书
还将以下行添加到 mosquitto 服务器配置文件中。
listener 8883
cafile certs/ca.crt
certfile certs/server.crt
keyfile certs/server.key
require_certificate true
然后我编写了下面的 javascript 客户端来连接到服务器。
var mqtt = require('mqtt');
var fs = require('fs');
var KEY = fs.readFileSync('G:/Projects/test/client.key');
var CERT = fs.readFileSync('G:/Projects/test/client.crt');
var TRUSTED_CA_LIST = [fs.readFileSync('C:/Program Files (x86)/mosquitto - Copy/certs/ca.crt')];
var PORT = 8883;
var HOST = 'localhost';
var options = {
port: PORT,
host: HOST,
protocol: 'mqtts',
keyPath: KEY,
certPath: CERT,
passphrase: 'testnode',
rejectUnauthorized : false,
//The CA list will be used to determine if server is authorized
ca: TRUSTED_CA_LIST,
secureProtocol: 'TLSv1_method',
protocolId: 'MQIsdp',
protocolVersion: 3
};
var client = mqtt.connect(options);
client.subscribe('messages');
client.publish('messages', 'Current time is: ' + new Date());
client.on('message', function(topic, message) {
console.log(message);
});
client.on('connect', function(){
console.log('Connected');
});
但是当我运行这段代码时,服务器会抛出以下错误。
1464240743: New connection from 127.0.0.1 on port 8883.
1464240743: OpenSSL Error: error:140890C7:SSL routines:ssl3_get_client_certifica
te:peer did not return a certificate
1464240743: Socket error on client <unknown>, disconnecting.
【问题讨论】:
-
你找到解决办法了吗?
-
你能解决这个问题吗?
标签: javascript ssl mqtt tls1.2 mosquitto