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

Angular 17调用API遇DEPTH_ZERO_SELF_SIGNED_CERT自签名证书错误求助

解决Angular调用API时的DEPTH_ZERO_SELF_SIGNED_CERT自签名证书错误

这个错误是因为你调用的目标API使用了自签名SSL证书,Angular的HTTP客户端默认不信任这类证书,而其他API用的是正规CA签发的证书,所以能正常运行。下面给你几种开发环境的解决办法(生产环境绝对不能用自签名证书,必须更换公共信任CA签发的证书):

  • 临时绕过证书验证(仅开发测试用,禁止用于生产)
    用Angular代理配置是相对安全的方式:

    1. 在项目根目录新建proxy.conf.json,写入以下内容:
      {
        "/api": {
          "target": "https://你的目标API地址",
          "secure": false,
          "changeOrigin": true
        }
      }
      
    2. 打开angular.json,找到serve配置下的options,添加代理文件配置:
      "serve": {
        "builder": "@angular-devkit/build-angular:dev-server",
        "options": {
          "browserTarget": "你的项目名称:build",
          "proxyConfig": "proxy.conf.json"
        }
      }
      
    3. 重启ng serve,调用API时用相对路径/api/具体接口路径代替完整的HTTPS地址即可。

    若要快速临时测试,也可以启动开发服务器时添加环境变量(此方法会让所有请求跳过证书验证,风险较高):

    NODE_TLS_REJECT_UNAUTHORIZED=0 ng serve
    
  • 将自签名证书导入本地信任存储(推荐长期开发使用)
    这个方法能一劳永逸解决开发环境的证书信任问题:

    1. 用浏览器打开目标API地址,点击地址栏的锁图标 → 证书 → 详细信息 → 复制到文件,保存为.crt格式。
    2. 导入证书到系统信任库:
      • Windows:双击.crt文件 → 安装证书 → 选择「本地计算机」→ 下一步 → 选择「将所有证书放入下列存储」→ 浏览选择「受信任的根证书颁发机构」→ 完成。
      • macOS:双击.crt文件 → 打开钥匙串访问 → 选择「系统」钥匙串 → 找到刚导入的证书,右键选择「显示简介」→ 在「信任」栏将「使用此证书时」设置为「始终信任」。
    3. 重启浏览器和Angular开发服务器,再调用目标API就不会报错了。

⚠️ 重要提醒:生产环境必须使用公共信任的CA签发的SSL证书(比如Let's Encrypt的免费证书),自签名证书会导致用户访问你的应用时出现安全警告,严重影响体验和安全性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 23:22:15