You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中如何忽略HTTPS请求SSL证书验证?含node-fetch、Axios问询

如何在Node.js中跳过HTTPS请求的SSL对等验证

当然有合适的工具包能实现你要的功能,而且Axios完全支持跳过SSL验证!下面给你逐个说明常用方案:

1. 使用Axios实现跳过SSL验证

Axios可以通过配置自定义的HTTPS Agent关闭SSL对等验证,效果和curl里的CURLOPT_SSL_VERIFYPEER => false、CURLOPT_SSL_VERIFYHOST => false完全一致。具体代码如下:

const axios = require('axios');
const https = require('https');

// 创建禁用SSL验证的Agent
const httpsAgent = new https.Agent({
  rejectUnauthorized: false // 这个选项同时关闭了对等证书验证和主机名验证
});

// 发起请求时指定该Agent
axios.get('https://your-insecure-domain.com/api', {
  httpsAgent: httpsAgent
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});

如果需要全局生效,也可以直接创建配置好的Axios实例:

const axiosInstance = axios.create({
  httpsAgent: new https.Agent({ rejectUnauthorized: false })
});

// 后续用这个实例发起的所有请求都会自动跳过SSL验证
axiosInstance.get('https://your-insecure-domain.com/api');

2. node-fetch其实也能实现!

你之前以为node-fetch不支持这个功能,但实际上它同样可以通过传入agent选项来实现。代码示例:

const fetch = require('node-fetch');
const https = require('https');

const httpsAgent = new https.Agent({
  rejectUnauthorized: false
});

fetch('https://your-insecure-domain.com/api', {
  agent: httpsAgent
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));

3. 其他可选包:request(虽停更但仍可使用)

虽然request包已经停止新功能开发,但很多旧项目还在使用,它的配置更直接:

const request = require('request');

request({
  url: 'https://your-insecure-domain.com/api',
  rejectUnauthorized: false // 直接设置该选项即可
}, (error, response, body) => {
  if (!error && response.statusCode === 200) {
    console.log(body);
  }
});

⚠️ 重要提醒:跳过SSL验证会让你的请求失去加密通信的安全性,容易遭受中间人攻击。这个操作只适合测试环境、内部可信服务场景,绝对不要在生产环境中使用!

内容的提问来源于stack exchange,提问作者Dmitry Samoylov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:03:56