gpt4 book ai didi

node.js - NodeJS 中的 TLS 连接使用证书存储中的证书和 key

转载 作者:太空宇宙 更新时间:2023-11-03 14:47:34 24 4
gpt4 key购买 nike

我已经通过 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);

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

最佳答案

通过 MSCAPI 访问 Windows Keystore .

我在 npm 上看不到此 API 的任何 NodeJS 包装器,但即使有,您也必须修改 mqtt 库才能使用它,因为它实际上不会让您访问私有(private)客户端 key ,而是您传入要使用该 key 签名/加密的数据,它会像硬件加密设备一样返回给您签名/加密的数据。

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

关于node.js - NodeJS 中的 TLS 连接使用证书存储中的证书和 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37695696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com