描述
在使用 git clone
克隆 GitHub 或者 Gitee 上的项目时,报如下错误:
error setting certificate verify locations:
CAfile: E:/Git/mingw64/ssl/certs/ca-bundle.crt
CApath: none
分析
据错误提示,是设置证书验证位置时出错,也就是证书文件路径错误。
克隆远程项目时会先验证安全证书,如果找不到本地的安全证书文件,就会报错。
这也是为什么克隆 GitLab 上的项目时不会报这个错,因为 GitLab 一般都搭建在内网,不用验证安全证书。
出现路径错误的原因往往是因为本地的 Git 是绿色安装的,也就是直接解压使用的。
这样证书文件的路径还是原来机器上的路径,新机器的路径如果不一致,就会造成路径错误。
解决
针对以上的分析,有两种解决方案:
- 修改证书文件路径(推荐)
- 关闭证书校验
由于关闭证书校验可能导致安全问题,推荐修改证书文件路径。
修改证书文件路径
这里有两种方式:
- 执行配置命令(推荐)
- 修改配置文件
这两种方式的本质都是修改配置文件,只是由于修改文件可能会出现一些误操作,且操作更为繁琐,推荐执行配置命令。
执行配置命令
git config --system http.sslcainfo "Git安装路径/mingw64/ssl/certs/ca-bundle.crt"
修改配置文件
Git 的系统配置文件位于:Git安装路径\etc\gitconfig
将文件中如图位置的路径修改为 Git安装路径/mingw64/ssl/certs/ca-bundle.crt
再保存即可。
关闭证书校验
git config --system http.sslverify false
这种方式可能导致 Git 安全问题,不推荐。