2016-03-30 86 views
4

是否有可用的節點模塊或可以跨平臺方式從操作系統讀取可信證書的代碼?其他答案涵蓋了如何使用ubuntus,我可以適應MacOS X,但我一直沒有找到任何可以輕鬆讀取Windows信任證書的代碼。其他問題指出它們存在於registry中,我應該使用CryptoAPI加載它們,但是我還沒有找到一個很好的從節點執行此操作的示例。跨平臺(包括Windows)通過nodejs使用操作系統可信證書

+0

這可能是值得的Windows證書一看:https://github.com/jfromaniello/node-windows-certs,HTTPS://www.npmjs。 COM /包/ windows.security.cryptography.certificates。 – JamieSee

回答

2

聽起來你所描述的問題並不是關於閱讀證書,而只是知道他們住在哪裏。

試圖建立一些能夠自動發現任何正在運行的機器上信任證書的地方的東西幾乎肯定是不可能的,並且可能不是一個好主意。

相反,這聽起來像它應該用一個簡單的環境變量來解決(畢竟問題是關於對不同環境證書路徑變異)。

您可能會設置3個環境變量,我們稱之爲CERT_PATH,KEY_PATHCA_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); 
相關問題