2015-10-15 26 views
0

所以我一直堅持了這個問題,而現在和任何我試試我不斷收到以下套接字錯誤「UNABLE_TO_VERIFY_LEAF_SIGNATURE」Node.js的https.request不斷得到UNABLE_TO_VERIFY_LEAF_SIGNATURE

this.options = { 
    method: 'PUT', 
    host: **host**, 
    port: **port**, 
    ca: fs.readFileSync(__dirname + '/configs/certs/' + serverConfig.environment + "/cert.cer"), 
    pfx: fs.readFileSync(__dirname + '/configs/certs/' + serverConfig.environment + "/cert.pfx"), 
    passphrase: 'thepassphrase', 
    rejectUnauthorized: false, 
    strictSSL: false 
}; 

function sendRequest (options, isSSL, callback) { 

    var returnData = '', req; 

    function getResponse(response) { 
     response.on('data', function (chunk) { 
      returnData += chunk; 
     }); 

     response.on('end', function() { 
      callback(null, returnData); 
     }); 
    } 

    var sendData = JSON.stringify(data); 

    if (isSSL) { 
     req = https.request(options, getResponse); 
    } else { 
     req = http.request(options, getResponse); 
    } 
    req.write(sendData); 
    req.end(); 

    req.on('error', function (e) { 
     callback(e.message, null); 
    }); 
} 

sendRequest(this.options, true, function (err, result){ 
... 
} 

響應對象返回在getResponse函數中返回一個500和在主題行中提到的錯誤。我使用Node.js 0.12。

任何幫助,將不勝感激。

問候。

回答

1

如果您嘗試連接到使用由中間CA簽名的證書的主機,則會發生此錯誤。 您可以通過設置

process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; 

許多模塊,如請求模塊解決這個還支持一個選項rejectUnauthorized: false來避免這個問題。

但是由於安全問題,不推薦在生產中使用。

+0

我試過process.env ['NODE_TLS_REJECT_UNAUTHORIZED'] ='0';但我仍然得到相同的結果。我還在選項中包含了rejectUnauthorized:false,但它仍然無效。還有什麼想法? – Joofville

+0

這是一個不安全的答案 – Scipion

相關問題