Azure DevOps 中的错误解决方案:unable to get local issuer certificate
错误概述
在使用 Azure DevOps 进行开发和 CI/CD 管道时,您可能会遇到以下错误信息:“unable to get local issuer certificate AZURE DEVOPS”。这个错误通常与 SSL 证书有关,尤其是在使用自签名证书或不受信任的证书时。此错误会导致构建失败,阻止您的管道正常工作。
常见原因
导致此错误的原因通常如下:
– 自签名证书:在使用自签名 SSL 证书的情况下,Azure DevOps 可能无法验证证书的颁发机构。
– 未正确配置的 Git:如果 Git 的 SSL 设置不正确,可能会导致此错误。
– 证书链问题:如果证书链不完整或者某些证书未被信任,会导致验证失败。
– Azure DevOps 代理配置:如果 Azure DevOps 代理使用的 Node.js 版本未正确配置以使用 Windows 证书存储,这可能引发问题。
解决方法
方法 1: 配置 Git 使用 Schannel
- 打开终端或命令提示符。
- 输入以下命令来配置 Git 使用 Windows 证书存储:
bash
git config --global http.sslbackend schannel - 运行完上述命令后,再次尝试之前的构建步骤,确认问题是否已解决。
方法 2: 接受不受信任的 SSL 证书
- 在 Azure DevOps 管道中,您可以通过环境变量来允许不受信任的 SSL 证书。
- 设置环境变量
GIT_SSL_NO_VERIFY为1:
bash
GIT_SSL_NO_VERIFY=1 - 通过此设置,Git 将忽略 SSL 证书验证,您可以尝试重新运行构建以查看是否解决了问题。
方法 3: 配置 NODE_EXTRA_CA_CERTS
- 如果您使用的是 Azure DevOps 代理,您可以设置一个环境变量来指向额外的 CA 证书。
- 在 PowerShell 脚本中,您可以添加以下代码:
powershell
$CertFile = "C:\path\to\your\cert.pem" - 使用此方法后,重启 Azure DevOps 代理服务:
powershell
Restart-Service vstsagent* -Force
方法 4: 使用 PowerShell 脚本更新证书
- 您可以通过 PowerShell 脚本自动从证书存储中导出证书并将其写入文件。
- 以下是一个示例脚本:
“`powershell
$Chain = @()
if ($env:AGENT_HOMEDIRECTORY -ne $null)

コメント