簡體   English   中英

Node.js和https證書錯誤處理

[英]Node.js and https certificate error handling

使長話短說:

我正在構建節點應用程序,該應用程序使用https (HTTP的安全版本)發出請求。 每當我錯過配置請求選項時,就會出現此錯誤:

Node.js主機名/ IP與證書的altname不匹配

很好...除了整個請求代碼都包裝有有效的try..catch (工作正常,已經檢查過)之外。 代碼基本上是這樣的:

try
{
    https.request(options, (response) =>
    {
       // no way I making it so far this that error

    }).end();
}
catch(ex)
{
   // for some reason.. I'm not able to get here either
}

我打算做的只是在try..catch塊中處理該錯誤。

閱讀一些帖子后,我了解到這種行為主要是因為tls模塊自動處理請求並因此產生此錯誤-這是一條很好的信息,但是它並不能真正幫助我處理異常。

建議其他一些人使用此選項:

rejectUnauthorized: false // BEWARE: security hazard!

但是我寧願不...所以..我想我的問題是:

  1. 使用try..catch塊處理錯誤應該在這里..對嗎?
  2. 如果不是,此行為是節點設計的嗎?
  3. 我可以用其他任何方式包裝代碼來處理此錯誤嗎?

只是要清楚一點-我沒有使用任何第三方庫(所以沒有人要責怪)

任何幫助將不勝感激

謝謝

您需要在https.request()返回的請求對象上添加'error'事件處理程序,以處理此類錯誤。 例如:

var req = https.request(options, (response) => {
  // ...
});
req.on('error', (err) => {
  console.log('request error', err);
});
req.end();

有關更多信息,請參見node.js文檔中有關錯誤的本節

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM