文章目录
- 问题描述
- 解决步骤
- 1.下载证书
- 2.测试证书是否正常
- 3.设置环境变量
- 总结
问题描述
在使用git repo 同步仓库时,发现不能同步,出现如下提示错误:
% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 00 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (60) SSL certificate problem: self-signed certificate in certificate chain, More details here: https://curl.se/docs/sslcerts.html.
curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it.
To learn more about this situation and how to fix it, please visit the web page mentioned above.
根据提示,阅读网页: https://curl.se/docs/sslcerts.html
发现最好的办法是把证书下载下来,设置环境变量.
解决步骤
1.下载证书
# -k 跳过证书验证
# -w %{certs} 抽取服务器端的证书
# > cacert.pem 把证书存储到文件中
curl -k -w %{certs} https://xxx/ > cacert.pem#证书内容在 "-----BEGIN CERTIFICATE-----"和"-----END CERTIFICATE-----"
#删除其他内容,只保留
#"-----BEGIN CERTIFICATE-----"
#xxxxx
#xxxx
#"-----END CERTIFICATE-----"
2.测试证书是否正常
#指定证书文件
curl --cacert cacert.pem -w %{certs} https://xxxx/
#发现可以下载页面
3.设置环境变量
#把证书文件放在家目录下
mkdir ~/cacert
mv cacert.prm ~/cacert/
vim ~/.bashrcexport CURL_CA_BUNDLE="/home/lin/cacert/cacert.prm"
source ~/.bashrc
#注意'CURL_CA_BUNDLE'需要设置绝对路径
总结
这个问题在网上很少遇到,搜索了几天也没有搜索到答案,看一下提示文档很容易解决了.
git-repo是android系统代码使用的源代码管理工具,不做安卓的很少使用,国内资料相对也很少.但是这个工具非常强大,对大型项目多个git仓库的管理非常方便.