2015-12-11 57 views
1

我創建了一個結構證書來認證客戶機 - >服務器,允許使用此一步步由CA只認可證書:https://jamielinux.com/docs/openssl-certificate-authority/create-the-root-pair.html自簽名的證書的NodeJS rejectUnauthorized

我檢查OpenSSL的權威,並將其返回給我使用相同的CA確定證書服務器和客戶端。但通過在服務器上將參數rejectUnauthorized設置爲true,客戶端無法連接。

是否有任何額外的參數應該設置爲允許通過我生成的證書進行身份驗證?

----編輯

在客戶端,我得到了以下錯誤:「」 ECONNRESET「插座掛斷」

回答

0

我花了很長的時間挖掘到類似的問題,我寫了這裏討論如何挖掘node.js的各種OpenSSL問題:http://www.thedreaming.org/2016/09/27/nodejs-ssl/

但是,簡短的回答是,如果您在創建客戶端連接時需要傳遞ca參數。如果您將自簽名證書存儲在cert.pem中,則客戶端代碼如下所示:

var https = require('https'); 
var fs = require('fs');  
var certificate = fs.readFileSync('cert.pem'); 

var options = { 
    host: serverHost, 
    port: 443, 
    path: '/', 
    ca: [certificate] 
}; 
https.request(options, function(res) { 
    res.pipe(process.stdout); 
}).end();