【问题标题】:Unable to clone - Git Looks for an incorrect certificate path无法克隆 - Git 寻找不正确的证书路径
【发布时间】:2018-11-14 01:13:20
【问题描述】:

我在这个问题的第 5 天没有任何运气。我已经浏览了 SO 中的帖子,已经报告的错误在性质上略有不同,它们指的是 git 正在寻找的不正确的 curl ca 证书,而在我的情况下,它是不正确的 ca 证书。

C:\Users\Dell2312\Desktop>git clone 
https://sampleurl.githost.io/grp/MyProject.git
Cloning into 'MyProject'...
fatal: unable to access 'https://sampleurl.githost.io/grp/MyProject.git/': 
error setting certificate verify locations:
CAfile: C:/Program Files/Git/mingw64/libexec/ssl/certs/ca-bundle.crt
CApath: none

我首先不明白为什么 git 应该检查不存在的证书并投诉我?我该怎么办?

PS:请不要引导我浏览其他 SO 帖子的链接,我已经逐行浏览了这些帖子。他们都没有提出这个问题的根本原因,也没有一个解决方案对我有用。

更新 - 我的 git 配置的详细信息

可以看出,git 查找的路径是 'C:/Program Files/Git/mingw64/libexec/ssl/certs/ca-bundle.crt' ,如下所示的实际证书路径是 C:\程序文件\Git\mingw64\ssl\certs\ca-bundle.crt

复制证书也没有用

C:\Users\Dell2312\Desktop>git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
diff.astextplain.textconv=astextplain
rebase.autosquash=true
http.sslcainfo=C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
http.sslcainfo=C:/Program Files/Git/ssl/certs/ca-bundle.crt

C:\Users\Dell2312\Desktop>git config --global --list
http.sslcainfo=C:/Program Files/Git/ssl/certs/ca-bundle.crt

【问题讨论】:

  • http.sslcainfo 用两个不同的值设置了两次?
  • 我不知道怎么做!第二个是文件实际所在的位置,在克隆时,git 在第一个路径中查找..有什么建议可以修复吗?
  • 我会从git config --global --edit 开始并删除http.sslcainfo 的双重输入
  • 我做到了,通过再次列出并转到配置文件来确认......没有运气:-(
  • 如果您使用 \ 而不是 / 作为文件夹分隔符,它会改变什么吗?

标签: git gitlab-ci-runner


【解决方案1】:

您正在使用 HTTPS 协议来克隆一个 git 存储库,因此 git 检查证书的有效性也就不足为奇了。您可以使用自定义证书颁发机构 (CA),但显然您的安装/配置存在与 CA 位置有关的问题。

您的配置可以列出:

git config --list
git config --global --list

也许您设置了一些sslCA* 变量?

如果您信任 sampleurl.githost.io,您可以尝试跳过 SSL 验证是否适合您:

GIT_SSL_NO_VERIFY=true git clone https://sampleurl.githost.io/grp/MyProject.git

【讨论】:

  • 感谢您的快速回复。我了解 git 检查证书的有效性,因为它是 HTTPS。正如你所说的那样,ca 的实际路径与 git 正在寻找的路径之间存在差异 - 我已经对我的问题进行了编辑。我刚刚使用默认设置安装了 scm git,但我不明白为什么 git 然后会在不同的路径中查找证书。我没有设置任何 sslCA 变量。另外,我不想跳过 SSL 验证,因为它不是推荐的方法,而且我还必须使用 git 处理许多其他项目。
  • 你说得对,禁用SSL验证不好,我只是想确认问题出在CA验证上。
  • 我认为上面的更新 - 很明显 CA 路径有问题,对吗?这也是我将证书从实际路径复制到 git 正在寻找的路径的结果,C:\Users\Dell2312\Desktop>git clone https://sampleurl.githost.io/grp/MyProject.git Cloning into 'MyProject'... fatal: unable to access 'https://sampleurl.githost.io/grp/MyProject.git /': error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protoc ol 如果您了解导致这些问题的原因,请告诉我?
猜你喜欢
  • 2020-01-20
  • 2019-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
相关资源
最近更新 更多