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

Azure发布流水线因TLS/证书问题启动失败求助

Azure发布流水线自托管机器证书验证失败(UNABLE_TO_VERIFY_LEAF_SIGNATURE)修复方案及排查方向

核心错误分析

日志中的UNABLE_TO_VERIFY_LEAF_SIGNATURE错误,本质是Azure Agent依赖的Node.js在与Azure DevOps服务器建立TLS连接时,无法验证证书的完整信任链。结合我方机器正常、客户机器异常的场景,大概率是客户环境的证书信任配置或SSL拦截导致的问题。

修复方案及排查步骤

  • 检查客户环境的SSL拦截设备
    确认客户是否启用了企业级防火墙、代理的SSL流量拦截功能。这类设备会替换Azure DevOps的服务器证书,导致机器无法验证。解决方式:

    • 将Azure DevOps相关域名加入SSL拦截白名单;
    • 导出该拦截设备的根证书,安装到客户机器的本地计算机-受信任根证书颁发机构存储。
  • 手动补全Azure DevOps证书链

    1. 在客户机器上打开浏览器访问你的Azure DevOps组织地址,点击地址栏锁图标,查看证书详情;
    2. 导出完整证书链(包含根证书和所有中间证书);
    3. 将证书分别安装到本地计算机-受信任根证书颁发机构和本地计算机-中级证书颁发机构;
    4. 重启Azure Agent服务。
  • 配置Agent的Node.js证书信任
    Azure Agent自带独立Node.js环境,可指定其使用系统证书或自定义证书:

    1. 在Agent安装目录找到.agent配置文件;
    2. 添加环境变量配置:Linux系统用export NODE_EXTRA_CA_CERTS=/path/to/your/cert.pem,Windows系统用set NODE_EXTRA_CA_CERTS=C:\path\to\your\cert.pem;
    3. 重启Agent服务。
  • 验证证书存储权限
    确保Azure Agent运行的服务账户(默认是NT SERVICE\AzureDevOpsAgent)对证书存储有读取权限:

    1. 打开mmc控制台,添加「证书」管理单元(选择本地计算机);
    2. 右键「受信任根证书颁发机构」→「权限」,添加Agent服务账户并赋予读取权限;
    3. 对「中级证书颁发机构」执行同样操作,重启Agent。
  • 对比我方正常机器的证书配置
    导出我方正常自托管机器的根证书和中间证书列表,与客户机器对比,找出缺失的证书并安装,快速定位差异点。

验证工具

  • 使用curl -v https://dev.azure.com/[你的组织名]测试TLS连接,查看证书链是否完整;
  • 使用openssl s_client -connect dev.azure.com:443输出证书链详情,确认是否存在中间证书缺失。

注意:NODE_TLS_REJECT_UNAUTHORIZED=0仅能作为临时测试方案,长期使用会关闭证书验证,带来严重安全风险,不建议保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:27:45