Node.js ';请求https://www.googleapis.com/oauth2/v4/token 失败,原因:无法获取本地颁发者证书。NodeJS

Node.js ';请求https://www.googleapis.com/oauth2/v4/token 失败,原因:无法获取本地颁发者证书。NodeJS,node.js,google-api,google-compute-engine,google-api-nodejs-client,google-client,Node.js,Google Api,Google Compute Engine,Google Api Nodejs Client,Google Client,节点版本-v12.16.1 NPM版本-6.13.4 我在Nodejs中使用下面的代码,使用googlecloudcomputelibrary从googlecloud获取VM的列表。以下连结- 我已经满足了所有的先决条件,但是无论我运行代码的原因是什么,我都会得到下面的错误- FetchError: request to https://www.googleapis.com/oauth2/v4/token failed, reason: unable to get local issuer ce

节点版本-v12.16.1 NPM版本-6.13.4

我在Nodejs中使用下面的代码,使用googlecloudcomputelibrary从googlecloud获取VM的列表。以下连结-

我已经满足了所有的先决条件,但是无论我运行代码的原因是什么,我都会得到下面的错误-

FetchError: request to https://www.googleapis.com/oauth2/v4/token failed, reason: unable to get local issuer certificate
    at ClientRequest.<anonymous> (C:\Users\username\Desktop\Full-Stack\NodeJS\node-examples\node_modules\node-fetch\lib\index.js:1455:11)
    at ClientRequest.emit (events.js:311:20)
    at TLSSocket.socketErrorListener (_http_client.js:426:9)
    at TLSSocket.emit (events.js:311:20)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  message: 'request to https://www.googleapis.com/oauth2/v4/token failed, reason: unable to get local issuer certificate',
  type: 'system',
  errno: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',
  code: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',
  config: {
    method: 'POST',
    url: 'https://www.googleapis.com/oauth2/v4/token',
    data: {
      grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
      assertion: 'eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJub2RlanNhY2NvdW50QGNvZ2VudC1jYXNlLTI0MjAxNC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsInNjb3BlIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9jb21wdXRlIiwiYXVkIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3Y0L3Rva2VuIiwiZXhwIjoxNTg3OTU4NDcwLCJpYXQiOjE1ODc5NTQ4NzB9.QSn0bSjHtph4aHGZcXIkWhbbUxampHSOE1BsDkI8dZOah12ICHFOZV0zwrngCPbTMr4MIfTAE7s8fLESjCUEq7lPSvB0uTqU5Lr3fI4FUUEqOGp56821Lh68Z8stWmKb-9HV85h7Ub0aSkJdnezYMcK_-FPu__a3ZLeP3lEnjJu9292DtctGT73XvHaeDTMFiHSI10BlJ2LIPds5lC6XM5I4f6W-4UH0VhUgLo1uCGxJJj0jnkQZbjp11l8KSwsMuIMFvug8G6Y5OKP1E4Ef1EKoEBFGC-vjIjaCPiqkFv4U1yh8xc7ShXh2MBQ8eyUZY1OvDNO4IXexQ-RoWBt0pQ'
    },
    headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
    responseType: 'json',
    params: [Object: null prototype] {},
    paramsSerializer: [Function: paramsSerializer],
    body: '{"grant_type":"urn:ietf:params:oauth:grant-type:jwt-bearer","assertion":"eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJub2RlanNhY2NvdW50QGNvZ2VudC1jYXNlLTI0MjAxNC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsInNjb3BlIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9jb21wdXRlIiwiYXVkIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3Y0L3Rva2VuIiwiZXhwIjoxNTg3OTU4NDcwLCJpYXQiOjE1ODc5NTQ4NzB9.QSn0bSjHtph4aHGZcXIkWhbbUxampHSOE1BsDkI8dZOah12ICHFOZV0zwrngCPbTMr4MIfTAE7s8fLESjCUEq7lPSvB0uTqU5Lr3fI4FUUEqOGp56821Lh68Z8stWmKb-9HV85h7Ub0aSkJdnezYMcK_-FPu__a3ZLeP3lEnjJu9292DtctGT73XvHaeDTMFiHSI10BlJ2LIPds5lC6XM5I4f6W-4UH0VhUgLo1uCGxJJj0jnkQZbjp11l8KSwsMuIMFvug8G6Y5OKP1E4Ef1EKoEBFGC-vjIjaCPiqkFv4U1yh8xc7ShXh2MBQ8eyUZY1OvDNO4IXexQ-RoWBt0pQ"}',    validateStatus: [Function: validateStatus]
  }
}
FetchError:请求https://www.googleapis.com/oauth2/v4/token 失败,原因:无法获取本地颁发者证书
在ClientRequest。(C:\Users\username\Desktop\Full Stack\NodeJS\node examples\node\u modules\node fetch\lib\index.js:1455:11)
在ClientRequest.emit(events.js:311:20)
在TLSSocket.socketErrorListener(_http_client.js:426:9)
在TLSSocket.emit(events.js:311:20)
在发射时出错(内部/streams/destroy.js:92:8)
在emitErrorAndCloseNT(内部/streams/destroy.js:60:3)
在处理和拒绝时(内部/process/task_queues.js:84:21){
信息:'请求https://www.googleapis.com/oauth2/v4/token 失败,原因:无法获取本地颁发者证书“,
键入:“系统”,
错误号:“无法在本地获取颁发者证书”,
代码:“无法在本地获取发卡机构证书”,
配置:{
方法:“POST”,
网址:'https://www.googleapis.com/oauth2/v4/token',
数据:{
授权类型:“urn:ietf:params:oauth:grant-type:jwt-bearer”,
断言:“eyJhbGciOiJSUzI1NiJ9.Eyjpc3mioijub2lannhy2nvdw50qgnvz2vudc1jyxnllti0mjaxnc5yw0uz3nlcznzpy2vh2nvdw50lmnvbsisinjb3blijoiahr0chm6ly93d3cuz29vz2xlyxbpcy5jb20v0cxv0ac9jb21wdxrliiwzzzvzzzzzzzvzkibbah6lyf3cuz29v2xlyxbpc5jb2f2vzy2vzy2vzy5c2vzy2v3v2v2v2v3v2v2v2v2v3v2v2v2v2v2v2v2v2v3v2v2v2v2v2v2v2v2v2v2v2v2ICHFOZV0ZWRNGCPBTMR4IFTAE7S8FLESJUEQ7LPSVB0UTQU5LR3FI4FUUEGp56821LH68Z8STWMKB-9HV85h7Ub0aSkJdnezYMcK-FPu-JU92DTCTGT73XVHAEDTMFI10BLJ25LC6XMI4F6W-4UH0VHUGLO1CGJJJJJJJ0JNKZB11KSMUIMFvG8G6G6G6F8G6F8G6F8F8G6F8F8G6F8F8F8G6F8F8F8F8F8G8F8F8F8F8K8F8F8F8F8Z8F8F8F8F8K8B8F8F8F8F8F8F8F8F8F8F8F8F8Z
},
标题:{'Content Type':'application/json',Accept:'application/json'},
responseType:'json',
params:[对象:空原型]{},
paramsSerializer:[函数:paramsSerializer],
正文:“{”grant_type:“urn:ietf:params:oauth:grant type:jwt bearer”,“断言”:"2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2 WRNGCPBTMR4IFTAE7S8FLESJUEQ7LPSVB0UTQU5LR3FI4FUUEQOGP56821LH68Z8STWMKB-9HV85h7Ub0aSkJdnezYMcK-FPu-JU92DTCTGT73xVHAEDTMFI10BLJ2LIPDS5 LC6Xm5I4F6W-4U0VHUGL1CGJJJJJJJ0JNKQZB11KSWSMUIMFVJ8G6Y5OKP1E4EFFJ8G8G6Y5OKF1EKF1EFFG9C-VZPIQ8B8BZ8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8F8B8B8F8F8F8F8F8F8F8G6F8F8F8F8F8F8F8F8F
}
}
我还尝试了npmconfig set strict ssl false

有人知道怎么了吗


感谢您的帮助!

启动客户端时,您可以将strictSSL设置为false(您已设置),也可以传递新的有效证书

将strictSSL设置为false(您已经这样做了),然后更新证书文件(您应该能够在此处导出它们-)

您组织中的IT管理员可能会阻止此链接。(请验证)

此外,您可以使用安全的方式和一些可能帮助您获得解决方案方向的各种备选方案来引用

FetchError: request to https://www.googleapis.com/oauth2/v4/token failed, reason: unable to get local issuer certificate
    at ClientRequest.<anonymous> (C:\Users\username\Desktop\Full-Stack\NodeJS\node-examples\node_modules\node-fetch\lib\index.js:1455:11)
    at ClientRequest.emit (events.js:311:20)
    at TLSSocket.socketErrorListener (_http_client.js:426:9)
    at TLSSocket.emit (events.js:311:20)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  message: 'request to https://www.googleapis.com/oauth2/v4/token failed, reason: unable to get local issuer certificate',
  type: 'system',
  errno: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',
  code: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',
  config: {
    method: 'POST',
    url: 'https://www.googleapis.com/oauth2/v4/token',
    data: {
      grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
      assertion: 'eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJub2RlanNhY2NvdW50QGNvZ2VudC1jYXNlLTI0MjAxNC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsInNjb3BlIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9jb21wdXRlIiwiYXVkIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3Y0L3Rva2VuIiwiZXhwIjoxNTg3OTU4NDcwLCJpYXQiOjE1ODc5NTQ4NzB9.QSn0bSjHtph4aHGZcXIkWhbbUxampHSOE1BsDkI8dZOah12ICHFOZV0zwrngCPbTMr4MIfTAE7s8fLESjCUEq7lPSvB0uTqU5Lr3fI4FUUEqOGp56821Lh68Z8stWmKb-9HV85h7Ub0aSkJdnezYMcK_-FPu__a3ZLeP3lEnjJu9292DtctGT73XvHaeDTMFiHSI10BlJ2LIPds5lC6XM5I4f6W-4UH0VhUgLo1uCGxJJj0jnkQZbjp11l8KSwsMuIMFvug8G6Y5OKP1E4Ef1EKoEBFGC-vjIjaCPiqkFv4U1yh8xc7ShXh2MBQ8eyUZY1OvDNO4IXexQ-RoWBt0pQ'
    },
    headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
    responseType: 'json',
    params: [Object: null prototype] {},
    paramsSerializer: [Function: paramsSerializer],
    body: '{"grant_type":"urn:ietf:params:oauth:grant-type:jwt-bearer","assertion":"eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJub2RlanNhY2NvdW50QGNvZ2VudC1jYXNlLTI0MjAxNC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsInNjb3BlIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9jb21wdXRlIiwiYXVkIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3Y0L3Rva2VuIiwiZXhwIjoxNTg3OTU4NDcwLCJpYXQiOjE1ODc5NTQ4NzB9.QSn0bSjHtph4aHGZcXIkWhbbUxampHSOE1BsDkI8dZOah12ICHFOZV0zwrngCPbTMr4MIfTAE7s8fLESjCUEq7lPSvB0uTqU5Lr3fI4FUUEqOGp56821Lh68Z8stWmKb-9HV85h7Ub0aSkJdnezYMcK_-FPu__a3ZLeP3lEnjJu9292DtctGT73XvHaeDTMFiHSI10BlJ2LIPds5lC6XM5I4f6W-4UH0VhUgLo1uCGxJJj0jnkQZbjp11l8KSwsMuIMFvug8G6Y5OKP1E4Ef1EKoEBFGC-vjIjaCPiqkFv4U1yh8xc7ShXh2MBQ8eyUZY1OvDNO4IXexQ-RoWBt0pQ"}',    validateStatus: [Function: validateStatus]
  }
}