簡體   English   中英

node JS 無法驗證第一個證書

[英]node JS unable to verify the first certificate

我必須從某人設置的服務器獲取令牌,但是當我嘗試獲取它時,我得到“錯誤:無法驗證第一個證書”。 我瀏覽了 web 尋找答案,發現了一些關於 globalAgent 的信息,但我不知道如何在我的代碼中實現它。 一些幫助將不勝感激。 這是我的代碼:

var request = require('request');

var options = {
    url: 'NEEDED_URL',
    method: 'POST',
    headers: {'content-type': 'application/x-www-from-urlencoded'},
    data: {
        grant_type: 'client_credentials',
        client_id: 'YOUR_CLIENT_ID',
        client_secret: 'YOUR_CLIENT_SECRET',
        scope: 'YOUR_SCOPE'
    }
  };

  function callback(error, body) {
    if (!error) {
      console.log(body);
    }

    else {
      console.log("error: " + error);
    }
  }

  request(options, callback);

NodeJS 使用自己的信任庫,與操作系統的信任庫分開。 一些服務器使用 NodeJS 不信任的根證書,在這種情況下,您需要設置 NODE_EXTRA_CA_CERTS 環境變量,並添加證書頒發者的公鑰。

例如,我的 MacOS 系統的 .zprofile 文件中有這樣一行,代表一個證書包:

export NODE_EXTRA_CA_CERTS=/Users/gary/certs/trusted.ca.pem

文件本身看起來像這樣(為清楚起見縮短了)。 僅當使用其中一種有效時才需要這樣做:

  • 您正在使用自簽名證書
  • 您正在使用 HTTP 代理來查看解密的 HTTPS 流量
  • 您正在使用貴公司頒發的證書
  • 貴公司使用替換目標站點根證書的企業SSL防火牆過濾器

更多信息請參閱我關於開發人員 SSL 信任故障排除的博文。

在此處輸入圖像描述

暫無
暫無

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

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