23

我需要https使用 node.js 为我的一些请求禁用对等 SSL 验证据我所知,现在我使用node-fetch没有该选项的包。

那应该是类似于 CURL 的CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false

是否有任何网络包允许这样做?有没有办法在 axios 中跳过 SSL 验证?

4

1 回答 1

44

到目前为止,Axios 还没有解决这种情况 - 你可以尝试:

process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';

但这是一个非常糟糕的主意,因为它会在整个节点服务器上禁用 SSL。

或者,您可以将 axios 配置为使用自定义代理并设置rejectUnauthorized为该false代理,如此所述。

例子:

const https = require('https');
const axios = require('axios')
//or
// import https from 'https';
// import axios from 'axios';

// At instance level
const instance = axios.create({
  httpsAgent: new https.Agent({  
    rejectUnauthorized: false
  })
});

instance.get('https://something.com/foo');

// At request level
const agent = new https.Agent({  
  rejectUnauthorized: false
});

axios.get('https://something.com/foo', { httpsAgent: agent });
于 2019-02-27T10:55:17.557 回答