使用git通过https方式从github clone git repo源码时,报错如下:
Setp1: 从curl官网下载cacert.pem文件(下载链接参见 这里 ,关于curl的Server SSL Certificates细节参见 这里 ,其中提到,从curl 7.18.0开始,编译安装curl时默认安装ca证书,而我机器的curl version=7.12.1,curl --version可查看):
Cloning into 'git'...
fatal: unable to access 'https://github.com/git/git.git/': SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
开启curl verbose选项(用于调试)并重新执行git clone,详细报错信息:
$ export GIT_CURL_VERBOSE=1
$ git clone https://github.com/git/git.git
Cloning into 'git'...
* Couldn't find host github.com in the .netrc file, using defaults
* About to connect() to github.com port 443
* Trying 192.30.252.128... * connected
* Connected to github.com (192.30.252.128) port 443
* successfully set certificate verify locations:
* CAfile: /usr/share/ssl/certs/ca-bundle.crt
CApath: none
* SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
* Closing connection #0
fatal: unable to access 'https://github.com/git/git.git/': SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
从错误提示可知,git通过curl访问https地址时,未能在本机未找到ca证书,从而导致ssl certificate verify failed。
解决方法:Setp1: 从curl官网下载cacert.pem文件(下载链接参见 这里 ,关于curl的Server SSL Certificates细节参见 这里 ,其中提到,从curl 7.18.0开始,编译安装curl时默认安装ca证书,而我机器的curl version=7.12.1,curl --version可查看):
~$ mkdir ~/tools/https-ca
~$ cd ~/tools/https-ca
~$ curl http://curl.haxx.se/ca/cacert.pem -o cacert.pem
Step2:终端执行下面的命令,以便为git配置ca认证信息:
~$ git config --global http.sslCAInfo /home/slvher/tools/https-ca/cacert.pem 可打开~/.gitconfig确认cainfo配置成功写入git配置文件
完成以上两步后,执行git clone https://github.com/git/git.git成功,问题解决。
【参考资料】
1. StackOverflow: SSL certificate rejected trying to access GitHub over HTTPS behind firewall
2. cURL: Details on Server SSL Certificates
================== EOF =====================
当使用`git clone`时遇到`error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed`错误,原因是本地缺少CA证书。通过开启curl调试并检查证书,成功解决Git SSL证书验证失败的问题。

1万+

被折叠的 条评论
为什么被折叠?



