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

如何通过SChannel自托管代理添加dev.azure.com证书链解决证书验证错误?

解决Azure Pipelines CreateWorkItem@2任务的「unable to get local issuer certificate」错误
  • 导入ZScaler证书到代理机器的系统证书存储
    由于你已配置Azure Pipelines代理使用SChannel,而SChannel依赖Windows系统证书存储,需将PEM格式的ZScaler证书链导入到本地计算机的「受信任的根证书颁发机构」:

    • 运行certlm.msc打开本地计算机证书管理器
    • 展开「受信任的根证书颁发机构」→「证书」
    • 右键选择「所有任务」→「导入」,按向导完成证书导入
    • 重启Azure Pipelines代理服务,确保代理加载新证书
  • 为流水线任务设置证书环境变量
    若系统证书导入无效,可在流水线中通过环境变量指定证书路径,让CreateWorkItem@2任务加载证书:

    # 先添加PowerShell任务设置环境变量(若证书存于安全文件,需先添加Download Secure File任务下载)
    - task: PowerShell@2
      inputs:
        targetType: 'inline'
        script: |
          $env:NODE_EXTRA_CA_CERTS = "C:\代理机器上的证书路径\zscaler-cert-chain.pem"
          $env:SSL_CERT_FILE = "C:\代理机器上的证书路径\zscaler-cert-chain.pem"
      env:
        NODE_EXTRA_CA_CERTS: $(NODE_EXTRA_CA_CERTS)
        SSL_CERT_FILE: $(SSL_CERT_FILE)
    
    # 原CreateWorkItem@2任务
    - task: CreateWorkItem@2
      inputs:
        workItemType: 'Task'
        title: 'Test Task (Automated) - ServerName'
        assignedTo: '$(Build.RequestedForId)'
        fieldMappings: |
          Description=$(Build.SourceVersionMessage)
          Effort=0.0
          Tags=Tag1
        linkCode: true
        commitsAndChangesets: '$(System.TeamProjectId):$(Build.Repository.ID):$(Build.SourceVersion)'
        authType: 'internal'
    
  • 配置代理全局使用证书
    编辑Azure Pipelines代理的.agent配置文件(位于代理安装目录下,与_work文件夹同级),添加证书路径配置:

    {
      "sslCertFile": "C:\\代理机器上的证书路径\\zscaler-cert-chain.pem"
    }
    

    保存后重启代理服务,让代理全局应用该证书。

  • 确认代理的SChannel配置
    检查代理.agent文件中是否已启用SChannel:

    {
      "gitSslBackend": "schannel"
    }
    

    若未添加,补充后重启代理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 02:42:18