跨平台(包括Windows)的方式使用操作系统信任的证书与nodejs

是否有可用的节点模块或者可以通过跨平台方式从操作系统读取可信证书的代码? 其他答案涵盖了如何使用ubuntus ,我可以适应MacOS X,但我一直没能find任何代码,可以轻松地读取Windows受信任的证书。 其他问题指出了它们在registry中存在的位置,我应该使用CryptoAPI来加载它们,但是我还没有find一个从节点执行此操作的好例子。

这听起来像你描述的问题不是真的读证书,而只是知道他们住在哪里。

试图build立一些可以自动发现任何正在运行的机器上的可信任证书的东西几乎是不可能的,反正也不是一个好主意。

相反,这听起来像应该用一个简单的环境variables来解决(问题毕竟是关于不同环境中证书path的变化)。

你可以设置3个环境variables,我们称之为CERT_PATHKEY_PATHCA_PATH 。 您可以在任何操作系统上configuration这些指向正确的位置。 然后您可以在您的应用程序中引用它们:

 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); 
Interesting Posts