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

Next.js中fetch请求失败:自签名证书链问题求助

解决Next.js中fetch请求出现self-signed certificate错误的方案

针对你遇到的self-signed certificate in certificate chain导致fetch失败的问题,以下是几个可行的解决办法:

1. 给服务端fetch添加自定义Agent(仅开发环境使用)

Next.js的async页面组件中,fetch会在服务端执行,此时可以通过Node.js的https模块创建跳过证书验证的Agent,传给fetch:

import React from "react";
import https from "https";

// 仅开发环境使用,生产环境请勿跳过证书验证
const agent = process.env.NODE_ENV === "development" ? new https.Agent({
  rejectUnauthorized: false
}) : undefined;

const Page = async({ searchParams }) => {
 const res = await fetch("https://jsonplaceholder.typicode.com/users", {
  agent
 });
 const data = await res.json()
 console.log(data);

 return <div></div>;
};

export const metadata = {
  title: "Movie App",
};

export default Page;

2. 通过环境变量禁用SSL验证(全局生效)

启动Next.js项目时,添加NODE_TLS_REJECT_UNAUTHORIZED=0环境变量,跳过Node.js的SSL证书验证:

NODE_TLS_REJECT_UNAUTHORIZED=0 next dev

如果是Windows系统(PowerShell),执行:

$env:NODE_TLS_REJECT_UNAUTHORIZED=0; next dev

3. 导入自定义CA证书(推荐生产/测试环境使用)

如果是对接使用自签名证书的内部API,建议将CA证书文件(如ca.crt)放到项目根目录,通过环境变量指定信任该证书:

NODE_EXTRA_CA_CERTS=./ca.crt next dev

这种方式比直接禁用验证更安全,适合需要长期使用自签名证书的场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:30:08