You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

基于标签初始化Repo失败求助:SSL证书验证错误问题

解决Repo初始化时SSL证书验证失败的问题

这是repo工具拉取Google Gerrit仓库时常见的SSL证书验证问题,我整理了几个实用的解决思路,你可以按顺序尝试:

1. 临时跳过SSL验证(快速测试用)

如果只是临时需要完成初始化,可以通过设置环境变量让Git跳过SSL证书验证,执行命令:

GIT_SSL_NO_VERIFY=true repo init -u ssh://10.xxx.xx.xx:xxxxx/test-manifest -b ref/tags/development -m lat_dev.xml

注意:这是临时方案,会降低安全性,不建议在生产环境长期使用

2. 手动添加Google Gerrit的证书到系统信任库

如果是系统缺少对应证书导致的验证失败,可以手动下载并信任证书:

步骤:

  • 先提取Gerrit的SSL证书:
openssl s_client -showcerts -connect gerrit.googlesource.com:443 < /dev/null | sed -n '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p' > gerrit.crt
  • 根据你的系统类型添加证书:
    • Ubuntu/Debian系
      sudo cp gerrit.crt /usr/local/share/ca-certificates/
      sudo update-ca-certificates
      
    • CentOS/RHEL系
      sudo cp gerrit.crt /etc/pki/ca-trust/source/anchors/
      sudo update-ca-trust extract
      

添加完成后再重新执行repo init命令即可。

3. 更新Repo工具到最新版本

旧版本的repo可能存在证书兼容问题,你可以手动更新repo脚本:

  • 先删除报错的旧repo目录:
rm -rf .repo/repo
  • 下载最新的repo脚本:
curl https://storage.googleapis.com/git-repo-downloads/repo > repo
  • 赋予执行权限:
chmod a+x repo
  • 用本地的repo脚本执行初始化:
./repo init -u ssh://10.xxx.xx.xx:xxxxx/test-manifest -b ref/tags/development -m lat_dev.xml

4. 检查网络代理设置

如果你正在使用代理,可能是代理的SSL证书导致验证失败:

  • 尝试临时关闭代理后再执行:
unset http_proxy https_proxy
repo init -u ssh://10.xxx.xx.xx:xxxxx/test-manifest -b ref/tags/development -m lat_dev.xml
  • 或者配置Git信任代理证书(临时方案):
git config --global http.sslVerify false
repo init -u ssh://10.xxx.xx.xx:xxxxx/test-manifest -b ref/tags/development -m lat_dev.xml

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

火山引擎 最新活动