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

GitHub Actions自托管Windows Runner上传制品失败:无法获取本地颁发者证书

解决GitHub Actions自托管Windows运行器上传工件证书错误的方案

问题根源

该错误源于upload-artifact动作依赖的Node.js环境未正确识别已添加的根CA证书——即便系统证书管理器已配置,Node.js默认不会自动读取系统根证书存储,代理环境下这个问题会更突出。

具体解决步骤

  • 配置Node.js专属CA证书环境变量
    在运行器的系统环境变量中新增:

    • 变量名:NODE_EXTRA_CA_CERTS
    • 变量值:根CA证书的绝对路径(例:C:\certs\corp-root-ca.crt)
      配置完成后,重启GitHub Actions Runner服务,确保变量生效。
  • 补全运行器.env文件的证书配置
    打开运行器安装目录下的.env文件,除代理地址外,添加证书路径配置:

    HTTP_PROXY=http://your-proxy-address:port
    HTTPS_PROXY=http://your-proxy-address:port
    NO_PROXY=localhost,127.0.0.1,github.com,api.github.com
    NODE_EXTRA_CA_CERTS=C:\certs\corp-root-ca.crt
    

    注意路径需使用Windows格式(单反斜杠或双反斜杠),且与系统环境变量保持一致。

  • 确认证书格式为PEM
    若当前证书是DER格式,需转换为Base64编码的PEM格式:

    1. 打开Windows证书管理器,找到目标根CA证书
    2. 右键选择「所有任务」→「导出」
    3. 选择「Base-64编码X.509(.CER)」格式保存,再用转换后的文件路径配置。
  • 验证网络与证书有效性
    在运行器机器上打开PowerShell,执行命令测试GitHub API连接:

    Invoke-RestMethod -Uri https://api.github.com/user -Proxy http://your-proxy-address:port -ProxyCredential (Get-Credential)
    

    若能正常返回用户信息,说明证书与代理配置无误。

  • 强制重启运行器服务
    完成所有配置后,必须重启GitHub Actions Runner服务:

    1. 打开Windows「服务」面板
    2. 找到GitHub Actions Runner服务,右键选择「重启」

额外注意事项

  • 确保运行器的服务账户拥有CA证书文件的读取权限,避免因权限不足导致证书加载失败。
  • 若使用运行器组管理,检查组级环境变量是否覆盖了本地运行器的配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:15:48