2017-07-13 80 views
1

我正面臨客戶端https請求的問題。nodejs - 證書鏈中的錯誤自簽名證書

一個片段可以是這樣的:

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

var options = { 
    hostname: 'someHostName.com', 
    port: 443, 
    path: '/path', 
    method: 'GET', 
    key: fs.readFileSync('key.key'), 
    cert: fs.readFileSync('certificate.crt') 
} 

var requestGet = https.request(options, function(res){ 
    console.log('resObj', res); 
} 

我得到的是錯誤:在自我證書鏈簽名證書。

當我使用郵遞員時,我可以導入客戶端證書和密鑰並且沒有任何問題地使用它。有沒有解決方案?我還希望看到郵遞員如何處理證書和工作。

回答

3

您需要將NODE_TLS_REJECT_UNAUTHORIZED='0'作爲環境變量添加。

+0

如果我理解正確的話,設置在服務器ENV_VAR將只禁用驗證的過程,這是我不想做。我只需要做郵遞員的工作,即以某種方式導入證書。 – kDoyle

+0

是你在這裏給出的值:'''cert:fs.readFileSync('certificate.crt')'''cert的絕對位置? –

+0

還有兩件事你必須考慮,CN需要與你正在嘗試使用的域相同,2你的openssl包需要1.0.2+或者你可以使用免費的CA https:// letsencrypt.org/ –

0

你可以寫命令NPM配置設置嚴格的SSL =假

相關問題