This is because node does not use your system's CA configuration; it includes its own built-in list of acceptable CAs.
If you want a node SSL client to accept a custom CA, you have to pass the CA's certificate in the ca
option.
// do something like this when your app starts up:
fs.readFile('/path/to/ca.pem', function(err, cert) {
if (err) ...
else certBuffer = cert;
});
// then when you make requests...
https.request({
hostname: 'example.com',
port: 443,
path: '/',
method: 'GET',
ca: certBuffer
}, ...);