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

Node.js 20原生全局fetch函数如何忽略无效SSL证书?

Node.js 20 内置全局fetch忽略无效SSL证书的方法

Node.js 20的内置全局fetch基于undici实现,原生Web标准的fetch API本身没有直接提供忽略SSL证书的配置项,但可以通过以下几种方式实现需求:

1. 全局禁用TLS证书检查(开发环境适用)

命令行参数启动

启动Node.js脚本时添加--no-tls-check参数,全局忽略所有SSL证书验证:

node --no-tls-check your-script.js

环境变量设置

通过设置NODE_TLS_REJECT_UNAUTHORIZED=0全局禁用证书校验:

  • Windows:
    set NODE_TLS_REJECT_UNAUTHORIZED=0 && node your-script.js
    
  • Linux/macOS:
    NODE_TLS_REJECT_UNAUTHORIZED=0 node your-script.js
    

2. 针对单个fetch请求忽略证书(精准控制)

利用undici的Agent配置,给特定fetch请求指定自定义dispatcher,实现单请求的证书忽略:

ES模块(ESM)写法

import { Agent } from 'undici';

// 创建禁用证书校验的Agent
const insecureAgent = new Agent({
  connect: {
    rejectUnauthorized: false
  }
});

// 发起请求时传入dispatcher参数
const response = await fetch('https://your-invalid-ssl-domain.com', {
  dispatcher: insecureAgent
});

// 使用后记得销毁Agent释放资源
insecureAgent.destroy();

CommonJS写法

const { Agent } = require('undici');

const insecureAgent = new Agent({
  connect: {
    rejectUnauthorized: false
  }
});

const response = await fetch('https://your-invalid-ssl-domain.com', {
  dispatcher: insecureAgent
});

insecureAgent.destroy();

注意:以上忽略SSL证书的操作仅建议在开发、测试环境使用,生产环境禁用证书校验会带来严重的安全风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 21:15:57