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

Node.js使用Axios请求本地ASP.NET Core 3.1应用时出现UNABLE_TO_VERIFY_LEAF_SIGNATURE错误的解决方法

解决Axios请求本地ASP.NET Core 3.1应用的证书错误问题

这个问题我之前帮同事排查过,其实核心原因就是Node.js默认不信任ASP.NET Core生成的自签开发证书,再加上ASP.NET Core默认会把HTTP请求重定向到HTTPS,所以不管你请求5000还是5001端口,最终都会触发证书验证失败的错误。下面给你几个实用的解决方案,按场景选就行:

一、快速解决:临时禁用证书验证(仅开发环境使用)

如果只是想快速测试功能,不想折腾证书配置,可以给Axios配置一个忽略证书验证的HTTPS代理。这样既能处理HTTPS请求,也能解决HTTP重定向后的证书问题。

单请求配置

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

async function fetchLocalApp() {
  try {
    // 创建不验证证书的HTTPS代理
    const httpsAgent = new https.Agent({ rejectUnauthorized: false });
    const result = await axios.get('https://localhost:5001/', { httpsAgent });
    console.log('请求成功:', result.data);
  } catch (err) {
    console.error('请求失败:', err.message);
  }
}

fetchLocalApp();

全局配置(所有Axios请求生效)

如果你的项目里有很多请求要发,可以全局设置Axios的默认代理,省得每个请求都写:

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

// 全局配置忽略证书验证
axios.defaults.httpsAgent = new https.Agent({ rejectUnauthorized: false });

// 之后的请求直接用axios即可
async function test() {
  const result = await axios.get('https://localhost:5001/');
  console.log(result.data);
}

⚠️ 注意:这个方法绝对不能用在生产环境,会带来严重的安全风险!

二、更安全的方案:信任ASP.NET Core开发证书

如果长期在本地开发,建议把ASP.NET Core的自签证书添加到Node.js的信任列表里,一劳永逸。

步骤1:找到并导出开发证书

  • Windows:打开「证书管理器」(运行里输入certmgr.msc),依次展开「当前用户」→「个人」→「证书」,找到名为ASP.NET Core HTTPS Development Certificate的证书,右键导出为Base64编码的.crt文件(比如命名为aspnet-dev.crt)。
  • macOS:打开「钥匙串访问」,在「登录」→「证书」里找到同名证书,右键导出为.crt格式。

步骤2:添加到Node.js信任列表

运行命令npm config get cafile,如果返回一个文件路径(比如/usr/local/etc/openssl/cert.pem),就把刚才导出的.crt文件内容追加到这个文件里;如果没有返回路径,说明Node.js使用的是系统根证书,直接把证书导入系统的「受信任的根证书颁发机构」(Windows)或在钥匙串里设置证书为「始终信任」(macOS)即可。

三、临时测试:关闭HTTPS重定向

如果你只是想测试HTTP请求,可以修改ASP.NET Core的代码,关闭HTTPS重定向:
在Startup.cs里找到这一行代码,注释掉它:

// app.UseHttpsRedirection();

这样请求http://localhost:5000就不会被重定向到HTTPS了,Axios直接请求HTTP地址就不会有证书问题。不过开发环境还是建议保留HTTPS,所以这个方法只适合临时验证问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 19:48:10