如何通过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
相关产品推荐
相关产品推荐

