如何使nodejs像浏览器一样请求https服务器?

时间:2016-06-22 21:23:57

标签: node.js ssl https

我有一个API服务器,它已经拥有COMODO的SSL证书。

当我在浏览器中通过jQuery请求时,一切正常。

但是,NodeJS中的https请求始终报告 {[错误:证书不可信]代码:'CERT_UNTRUSTED'}

我不想创建自签名证书。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

如果您使用https模块发出请求,则需要在请求中启用rejectUnauthorized选项。根据官方文档:https://nodejs.org/api/https.html#https_https_request_options_callback

const https = require('https');

var options = {
  hostname: 'your-hostname',
  port: 443,
  path: '/the-path-to-access',
  method: 'GET',
  rejectUnauthorized: false // this is the line you need to add!
};

var req = https.request(options, (res) => {
  console.log('statusCode: ', res.statusCode);
  console.log('headers: ', res.headers);

  res.on('data', (d) => {
    process.stdout.write(d);
  });
});
req.end();

req.on('error', (e) => {
  console.error(e);
});