使用证书存储区

时间:2016-06-08 07:18:13

标签: node.js ssl x509certificate mqtt mscapi

我已通过MQTT实现了TLS连接,如下所示。

mqttOptions = {
clientId: '100',
key: fs.readFileSync('test/certs/client.key'),
cert: fs.readFileSync('test/certs/client.crt'),
ca: fs.readFileSync('test/certs/ca.crt'),
secureProtocol: 'TLSv1_method',
rejectUnauthorized: false,
protocolId: 'MQIsdp',
protocolVersion: 3,
passphrase: 'edgenode',
keepAlive: 1000,
clean: false,
reconnectPeriod: '1000',
will: willMessage

};

var client = mqtt.connect(tls://localhost:8883, mqttOptions);

这里我传递的是客户端密钥,证书和CA证书。相反,我需要使用Windows证书库中的信息进行连接。假设我已在Windows证书库中安装了客户端证书,如何使用nodeJS从中读取私钥并建立连接?请指教。

1 个答案:

答案 0 :(得分:0)

通过 MSCAPI

访问Windows密钥库

我在npm上看不到这个API的任何NodeJS包装器,但即使你有必要修改mqtt库来使用它,因为它实际上不会让你访问私有客户端密钥,而是您使用该密钥传递要签名/加密的数据,它可以像硬件加密设备一样返回签名/加密数据。

如果你真的需要使用Windows密钥库,我建议将客户端应用程序移植到类似C,C#或Java的东西,因为有些MSCAPI库用于使用语言标准API提供密钥/证书