如何修复 unable to get local issuer certificate AZURE DEVOPS …

スポンサーリンク

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

  1. 打开终端或命令提示符。
  2. 输入以下命令来配置 Git 使用 Windows 证书存储:
    bash
    git config --global http.sslbackend schannel
  3. 运行完上述命令后,再次尝试之前的构建步骤,确认问题是否已解决。

方法 2: 接受不受信任的 SSL 证书

  1. 在 Azure DevOps 管道中,您可以通过环境变量来允许不受信任的 SSL 证书。
  2. 设置环境变量 GIT_SSL_NO_VERIFY1
    bash
    GIT_SSL_NO_VERIFY=1
  3. 通过此设置,Git 将忽略 SSL 证书验证,您可以尝试重新运行构建以查看是否解决了问题。

方法 3: 配置 NODE_EXTRA_CA_CERTS

  1. 如果您使用的是 Azure DevOps 代理,您可以设置一个环境变量来指向额外的 CA 证书。
  2. 在 PowerShell 脚本中,您可以添加以下代码:
    powershell
    $CertFile = "C:\path\to\your\cert.pem"
  3. 使用此方法后,重启 Azure DevOps 代理服务:
    powershell
    Restart-Service vstsagent* -Force

方法 4: 使用 PowerShell 脚本更新证书

  1. 您可以通过 PowerShell 脚本自动从证书存储中导出证书并将其写入文件。
  2. 以下是一个示例脚本:
    “`powershell
    $Chain = @()
    if ($env:AGENT_HOMEDIRECTORY -ne $null)

コメント

タイトルとURLをコピーしました