node.js – 跨平台(包括Windows)使用带有nodejs的OS可信证书的方式

是否有可用的节点模块或可以跨平台方式从操作系统读取可信证书的代码?其他答案涵盖了如何使用
ubuntus我可以适应MacOS X,但我找不到任何可以轻松读取Windows可信证书的代码.其他问题指出了它们在
registry中存在的位置以及我应该使用CryptoAPI加载它们,但我还没有找到一个从节点执行此操作的好例子. 最佳答案 听起来你所描述的问题并不是关于阅读证书,而只是知道他们住在哪里.

尝试构建能够自动发现任何正在运行的计算机上可信证书所在位置的内容几乎肯定是不可能的,无论如何可能都不是一个好主意.

相反,这听起来应该用一个简单的环境变量来解决(毕竟问题是关于不同环境下证书路径的可变性).

您可以设置3个环境变量,我们称之为CERT_PATH,KEY_PATH和CA_PATH.您可以在任何操作系统上配置这些以指向正确的位置.然后,您可以在应用程序中引用它们:

var fs = require('fs');  
var https = require('https');

var options = {  
    key: fs.readFileSync(process.env.KEY_PATH),
    cert: fs.readFileSync(process.env.CERT_PATH),
    ca: fs.readFileSync(process.env.CA_PATH),
};

https.createServer(options, function (req, res) {  
    console.log(new Date()+' '+
        req.connection.remoteAddress+' '+
        req.method+' '+req.url);
    res.writeHead(200);
    res.end("hello world\n");
  }).listen(4433);
点赞