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

初学Autodesk Forge按官方教程开发遇自签名证书错误如何解决?

报错原因
  • 核心错误为self signed certificate in certificate chain,是你的当前网络环境(例如公司内网、带SSL拦截功能的代理或防火墙)在请求Autodesk Forge官方接口时,中间插入了自签名SSL证书,Node.js默认会校验SSL证书链的合法性,识别到非官方信任的自签名证书后就会拒绝连接,抛出该错误。
  • 第二个UnhandledPromiseRejectionWarning属于衍生报错:教程示例代码中调用Forge接口的异步逻辑没有捕获该连接错误,未处理的Promise拒绝状态就触发了这个警告;前端的Buckets&Objects模块因为无法获取接口返回数据,就会一直卡在加载状态。
解决方法

分为临时调试方案和长期合规方案两类:

临时调试方案(仅适用于本地开发,禁止在生产环境使用)

  • 方案1:启动Node服务前添加环境变量禁用全局SSL证书校验
    • Windows CMD环境执行:set NODE_TLS_REJECT_UNAUTHORIZED=0
    • Windows PowerShell环境执行:$env:NODE_TLS_REJECT_UNAUTHORIZED=0
    • Mac/Linux终端环境执行:export NODE_TLS_REJECT_UNAUTHORIZED=0
      执行后正常启动应用即可生效。
  • 方案2:如果使用VSCode调试,可在.vscode/launch.json的调试配置中添加对应环境变量:
    {
      "configurations": [
        {
          // 保留你原有调试配置的其他参数,新增下方env项
          "env": {
            "NODE_TLS_REJECT_UNAUTHORIZED": "0"
          }
        }
      ]
    }
    
  • 方案3:修改项目中调用Forge接口的请求配置,添加rejectUnauthorized: false参数,跳过单个请求的证书校验。

长期合规方案

  • 导出当前网络环境的自签名根证书,存到项目目录下,在Node服务的启动代码中添加配置加载该信任证书:
    const https = require('https');
    const fs = require('fs');
    // 替换为你的根证书实际路径
    const rootCACert = fs.readFileSync('./internal-root-ca.crt');
    https.globalAgent.options.ca = rootCACert;
    
  • 额外优化建议:在所有调用Forge接口的异步逻辑位置添加try/catch捕获异常,避免未处理的Promise报错影响服务稳定性,也方便后续排查其他接口类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:54:07