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

Node.js应用API调用出现TLS证书验证错误,Postman请求正常求助

为什么Node.js GET请求会报"unable to verify the first certificate",但Postman却正常?

我之前碰到过一模一样的情况:用Postman发GET请求能顺利访问目标端点,换成Node.js应用用完全相同的端点和凭证请求时,直接抛出了这个错误:

{ Error: unable to verify the first certificate at TLSSocket.<anonymous> (_tls_wrap.js:1103:38) at emitNone (events.js:106:13) at TLSSocket.emit (events.js:208:7) at TLSSocket._finishInit (_tls_wrap.js:637:8) at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:467:38) message: 'unable to verify the first certificate', code: 'NetworkingError', region: 'us-east', hostname: '1.1.1.1', retryable: true, time: 2018-05-09T09:54:26.736Z }

折腾了一阵后,总结出几个最可能的原因:

  • Postman与Node.js的SSL验证逻辑差异:Postman默认会宽松处理SSL证书——要么自动跳过不完整的证书链验证,要么自带的根证书库比Node.js更全,能自动补上缺失的中间证书。但Node.js的TLS模块严格遵循SSL规范,只要证书链有问题就直接报错。
  • 目标服务器证书链不完整:这是最常见的原因。很多服务器只部署了自身的服务器证书,却忘了部署中间证书。浏览器和Postman会自动去证书颁发机构的服务器拉取缺失的中间证书,但Node.js不会做这个自动补充,因此验证失败。
  • Node.js不信任目标证书的CA:如果目标站点用的是企业内部私有CA签发的证书,而Node.js默认的根证书库没有包含这个CA,就会验证失败。而Postman可能已经手动导入了这个私有CA的证书,所以能正常访问。
  • 代理/防火墙的SSL拦截:如果你的Node.js应用通过公司代理访问目标站点,代理可能会替换目标站点的SSL证书(做中间人拦截),这个替换后的证书不在Node.js的信任列表里,就会报错。Postman如果配置了信任代理的证书,就不会有问题。

临时调试方案(仅用于排查,生产环境禁用)

如果想快速确认是不是证书的问题,可以临时关闭Node.js的证书验证(绝对不要在生产环境这么做,会带来严重安全风险):

const https = require('https');
// 创建禁用证书验证的agent
const agent = new https.Agent({
  rejectUnauthorized: false
});

https.get('https://你的目标端点', { agent }, (res) => {
  // 处理响应逻辑
  res.on('data', (data) => {
    console.log(data.toString());
  });
});

正确的解决方法

  • 补全服务器的证书链:联系服务器管理员,确保服务器部署了完整的证书链(服务器证书 + 对应的中间证书),一般证书颁发机构会提供完整的链文件。
  • 导入私有CA到Node.js信任库:如果是私有CA的情况,可以把CA证书添加到NODE_EXTRA_CA_CERTS环境变量指向的文件中,或者在代码里指定CA:
const https = require('https');
const fs = require('fs');
// 读取私有CA证书
const caCert = fs.readFileSync('/path/to/your-ca-cert.pem');

const agent = new https.Agent({
  ca: caCert
});

https.get('https://你的目标端点', { agent }, (res) => {
  // 处理响应
});
  • 信任代理证书:如果是代理拦截的问题,把代理的CA证书添加到Node.js的信任库中,或者在代码里指定CA。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:34:33