我目前正在实现一个 NodeJS 服务器,它在 Windows 机器上运行。我的要求是为客户端服务器通信启用证书验证。目前,我的代码如下并且运行良好(请注意,所有客户端都会发送服务器根 CA 证书)。
var ssl_options = {
key: fs.readFileSync(options.key),
cert: fs.readFileSync(options.cert),
ca: null
};
server = https.createServer(ssl_options, function (request, response) {
// server logic
}
但是,我的要求是使用 Windows 商店中已有的证书,如果不从证书中提取私钥,我将无法正确执行此操作。
我尝试使用 Httpsys 模块,它工作正常,但看起来它是一个非常新的模块,尚未经过正确测试。所以,想知道是否有其他替代方法可以直接在 Nodejs 中使用 Windows 证书而不提取密钥。
您可以查看 npm 模块 https://www.npmjs.com/package/windows-certs 并在您的应用程序中使用它或重用它的代码。这个想法非常简单 - 启动应用程序,将证书导出到 ram,然后用于 ssl 连接。初始格式转换应该无关紧要。