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

Next.js GetStaticProps调用本地ASP.NET Core API遇500错误(证书问题)

解决Next.js调用自签名证书ASP.NET Core API的500错误

方案一:让Next.js接受自签名证书(仅开发环境)

由于getStaticProps在Node.js服务端运行,Node默认会拒绝自签名证书,可通过以下方式处理:

临时禁用证书验证(快速解决)

仅用于开发环境,绝对不能在生产环境使用,在getStaticProps中临时关闭TLS证书校验:

export async function getStaticProps() {
  // 禁用证书验证
  process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
  
  const res = await fetch('https://localhost:7001/api/SourceSystems');
  const data = await res.json();
  
  // 可选:恢复默认校验规则
  delete process.env.NODE_TLS_REJECT_UNAUTHORIZED;
  
  return { props: { data } };
}

如果使用Axios,可通过自定义HTTPS Agent实现:

import axios from 'axios';
import https from 'https';

export async function getStaticProps() {
  const httpsAgent = new https.Agent({ rejectUnauthorized: false });
  const res = await axios.get('https://localhost:7001/api/SourceSystems', { httpsAgent });
  
  return { props: { data: res.data } };
}

信任自签名证书(规范开发方式)

  1. 导出ASP.NET Core的自签名证书:访问https://localhost:7001,点击地址栏锁图标,将证书导出为.crt格式。
  2. 将证书添加到Node.js信任链:
    安装依赖包:npm install ssl-root-cas --save-dev
    在Next.js代码中加载证书:
    import sslRootCAs from 'ssl-root-cas';
    import fs from 'fs';
    
    sslRootCAs.addFile('/本地证书文件的绝对路径.crt');
    

方案二:为ASP.NET Core生成受信任的开发证书

从根源解决证书信任问题,生成系统认可的开发证书:

  1. 进入ASP.NET Core项目目录,运行终端命令:
    dotnet dev-certs https --trust
    
    该命令会自动生成并让系统信任本地HTTPS证书(Windows/macOS自动完成信任,Linux需手动导入到系统证书存储)。
  2. 重启ASP.NET Core API项目,确保使用新证书。
  3. 重启Next.js项目,清除浏览器缓存后测试接口调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:20:25