Open MSherry24 opened 5 years ago
Are you on a network behind a firewall/proxy? Have you tried running the same code on a different/open network?
Yes, I am behind a corporate firewall, but I've run the same code on a different machine on the same network and it works fine. It clearly has something to do with my local machine settings rather than the code hosted here. The weird part is that I don't see any self-signed certificates on my machine.
The self-signed cert is likely coming in the response from the proxy/firewall. Maybe a different policy for that machine or you're not authenticated on the network in the same way?
You can also test with a simpler script that just uses built-in node functions.
const https = require('https');
let options = {
hostname: 'oauth2.googleapis.com',
port: 443,
path: '/token',
method: 'POST'
};
let req = https.request(options, (resp) => {
resp.on('data', (chunk) => console.log(chunk.toString()));
resp.on('end', () => console.log('End'));
resp.on('error', (err) => console.log(err));
});
req.end();
Expected Behavior
I should be able to run the Sheets API Node.js quickstart and authorize my google account to access the API https://developers.google.com/sheets/api/quickstart/nodejs
Actual Behavior
I am unable to authorize my account due to a self signed certificate found in my certificate chain.
Steps to Reproduce the Problem
Error while trying to retrieve access token { FetchError: request to https://oauth2.googleapis.com/token failed, reason: self signed certificate in certificate chain at ClientRequest. (C:\xampp\htdocs\SoxFX\SoxFXExpress\node_modules\node-fetch\lib\index.js:1453:11)
at ClientRequest.emit (events.js:197:13)
at TLSSocket.socketErrorListener (_http_client.js:399:9)
at TLSSocket.emit (events.js:197:13)
at emitErrorNT (internal/streams/destroy.js:82:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
at processTicksAndRejections (internal/process/next_tick.js:76:17)
message:
'request to https://oauth2.googleapis.com/token failed, reason: self signed certificate in certificate chain',
type: 'system',
errno: 'SELF_SIGNED_CERT_IN_CHAIN',
code: 'SELF_SIGNED_CERT_IN_CHAIN',
config:
{ method: 'POST',
url: 'https://oauth2.googleapis.com/token',
data:
'code=[]&client_id=[]&redirect_uri=[]&grant_type=authorization_code&code_verifier=',
headers:
{ 'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'google-api-nodejs-client/3.1.2',
Accept: 'application/json' },
params: [Object: null prototype] {},
paramsSerializer: [Function: paramsSerializer],
body:
'code=[]&client_id=[]&client_secret=[]&redirect_uri=[***]&grant_type=authorization_code&code_verifier=',
validateStatus: [Function: validateStatus],
responseType: 'json' } }
Specifications
node -v
): v11.9.0