无法拉/推git存储库

时间:2015-12-29 11:26:54

标签: git github-for-windows

$ git pull origin master
fatal: unable to access 'https://xxxxxxxxxxxxxxx': 
      error setting certificate verify locations:
CAfile: C:/Users/abc/AppData/Local/Programs/Git/usr/bin/curl-ca-bundle.crt
CApath: none

当我拉或推我的代码时,我收到此错误。

请指导我解决此问题。

24 个答案:

答案 0 :(得分:47)

使用https时,您需要提供密码或使用证书。 在您的情况下,证书看起来不是有效证书。

通过告诉git在哪里找到证书来尝试修复它:

// Add the certificate to your configuration file
git config --system http.sslcainfo "C:\Program Files (x86)\git\bin\curl-ca-bundle.crt"

或者,您可以禁用SSL检查:

// or switch off SSL checks completely by executing:
git config --system http.sslverify false

在您的配置中将其设置为仅针对给定网址而不是针对所有请求

禁用它
[http "https://weak.example.com"]
    sslVerify = false

http.sslVerify

  

在获取或推送HTTPS时是否验证SSL证书。

http.sslCAInfo

  

包含证书的文件,用于在获取或推送HTTPS时验证对等方

答案 1 :(得分:24)

我曾经遇到过同样的问题。重新安装git for windows后出现问题。我在Windows 10上使用git for Windows 64位。

我发现安装程序不再在strPath="C:\Users\PSin\Desk\CodeInven.xlsx" Dim ObjectName ObjectName=Trim(InputBox("Object Name:")) Set objExcel= CreateObject("Excel.Application") objExcel.Visible= True objExcel.Workbooks.Open(strPath) With objExcel.Activeworkbook.Sheets("All") .Range("A1").AutoFilter 19,"="&ObjectName Rowz = .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count - 1 'Not able to figure out the correct way msgbox Rows End With 中安装git。而是安装它 C:/Users/[USER_NAME]/AppData/Local/Programs/Git

然而,安装程序未编辑旧的配置文件C:\Program Files\Git。此文件仍包含旧路径,因此我手动编辑它。

E.g。在我使用的系统上

C:\ProgramData\Git\config

也许您必须使用[http] sslCAInfo = C:/Programme/Git/mingw64/ssl/certs/ca-bundle.crt 代替

Program Files

修改

DS在评论中所说的那样

  

C:\ ProgramData \ Git \ config需要以管理员身份进行编辑

E.g。右键单击记事本并选择"Run as Administrator",然后打开文件。

答案 2 :(得分:23)

我也在windows中遇到这个问题并使用gitbash运行git。我刚刚重新安装了gitbash,并且gitbash自动管理了git证书及其所需的路径。

答案 3 :(得分:12)

在git-bash的2.x版本中.crt的路径已更改为../Git/mingw64/ssl/certs/ca-bundle.crt。我必须使用

在git-bash中手动更新
 git config --global http.sslcainfo "/path/to/Git/mingw64/ssl/certs/ca-bundle.crt"

答案 4 :(得分:5)

试试这个

git config --system http.sslcainfo "C:\Program Files (x86)\git\bin\curl-ca-bundle.crt"

通过运行此命令关闭SSL

git config --system http.sslverify false

答案 5 :(得分:4)

{{1}}
  • 将解决问题    之后弹出窗口似乎输入您的用户名和密码    确保有效。

答案 6 :(得分:2)

如果您的git版本是2.8.1.windows.1,这可能会对您有所帮助。 首先,你需要找到你的git主目录,我的是D:\ SDK \ Git.Just在同一目录下,你可以找到文件夹“usr”,打开它并转到\ ssl \ certs,你可以找到证书: CA-bundle.crt。

然后打开控制台,执行:
git config --system http.sslcainfo "D:\SDK\Git\usr\ssl\certscabundle.crt"

答案 7 :(得分:2)

转到您的git目录并将mingw64 / ssl文件夹移至mingw64 / libexec / ssl

答案 8 :(得分:2)

这将在从GIT 2.x客户端迁移到2.5.x时完成工作:

在安装新版本的GIT客户端之后,它会改变它从以下内容查找证书的路径:

C:\Program Files\Git\mingw64

这样的事情:

C:\Program Files\Git\mingw64\libexec

要解决此问题,只需复制“ssl'文件夹到新位置,它就像一个魅力!

答案 9 :(得分:1)

我在以下地址找到了ssl证书:

C:\Users\[USERNAME]\AppData\Local\GitHub\PortableGit_[portable code]\usr\ssl\certs

然后你可以按CodeWizard来解决问题,即:

// Add the certificate to your configuration file
git config --system http.sslcainfo "[LOCATION_SPECIFIED_ABOVE]/cabundle.crt"

答案 10 :(得分:1)

安装Windows 10后,我在最新的cygwin更新后遇到了同样的问题。 安装期间命令update-ca-trust失败。

原因似乎是证书文件夹的组所有者已损坏。 有点激烈的解决方案是删除/etc/group,结果证明cygwin能够直接向windows询问群组权利。

http://zaunerc.blogspot.se/2016/01/cygwin-mapping-windows-sids-to-posix.html

找到解决方案

答案 11 :(得分:1)

当前用于Windows的Git版本(2.18.0.windows.1)有一个错误-如果未设置http.sslcainfo,则它期望在C:/Program Files/Git/mingw64/libexec/ssl/certs/ca-bundle.crt中找到证书存储。

证书存储实际上已安装到C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt,因此要修复必须指定正确的路径。

此外,此版本中的SCHANNEL实现也被破坏。

最后,Git凭据管理器也被破坏了,因为如果您从gitlab-runner安装中存储了CI / CO凭据,它将克隆/推送/拉出并带有拒绝访问错误,而不会提示输入其他凭据。

答案 12 :(得分:1)

对于将来的读者:

在cygwin上安装devel软件包后,我遇到了这个问题。

我尝试了该线程中的所有修复程序,但没有任何作用

然后,我遇到了this thread on github

我做的是发现在gitconfig中指定了CAPATH的位置,然后删除了https规范,它解决了我的问题。

答案 13 :(得分:1)

当 git 客户端无法为 ssl 找到受信任的 CA 时,可能会出现此问题。如果您使用的是 Windows,请尝试从 https://gitforwindows.org/ 重新安装它。

在安装过程中,选择“使用本机 Windows 安全通道库”选项。 该选项将允许您使用公司的内部根 CA 证书而不是默认的 ca-bundle.crt

enter image description here

答案 14 :(得分:0)

我收到了相同的错误消息但在我的情况下是因为我更改了github设置以使用ssh而不是https。

在删除遥控器并使用ssh重新添加遥控器后,使用https克隆了存在该问题的存储库。

$git remote remove origin
$git remote add origin git@github.com:UserName/repo.git

然后git remote show origin正确显示遥控器。

答案 15 :(得分:0)

我在Windows 7中遇到了同样的错误。发现错误中引用的证书路径不存在。而不是...... \ mingw32 \ usr \ ssl ...证书文件在... \ mingw2 \ ssl ... 所以我手动创建了一个usr文件夹,并将整个ssl树移动到usr中。这解决了这个问题。

答案 16 :(得分:0)

我遇到了同样的错误,我修复了它在默认路径中重新安装git:

C:\ Program Files \ Git

全部

答案 17 :(得分:0)

感谢https://github.com/npm/npm/issues/1484
git config --global http.sslverify "false"将解决问题

答案 18 :(得分:0)

我发现以下步骤对于解决Windows 10的问题非常有用:

卸载git。

然而,git uninstaller并不干净。因此,您可能需要删除C:\ Users [我的名字] \ AppData \ Local \ Programs \

中的Git目录

在此之后,应该安装全新的git,将其安装在配置文件所指向的C:\ Program Files \ Git目录中,以便读取ssl证书。

答案 19 :(得分:0)

我遇到了同样的错误消息,但在克隆github存储库时,遗憾的是设置http.sslcainfo并没有多大帮助。因为我碰巧在公司代理服务器后面,所以设置http.proxy为我修复了它。

答案 20 :(得分:0)

使用Intellij和git-sdk-64,并首先选择git-sdk-64\mingw64\bin\git.exe来解决此问题,然后当切换到git-sdk-64\cmd\git.exe时,它单独计算了证书文件位置,并且不需要其他配置。 (尚未使用git config --global http.sslcainfo ...

答案 21 :(得分:0)

此主题有很多盲目领先的答案。 我只是这里的另一个盲人,但是我遇到了同样的问题,并通过遵循this easy article解决了这个问题。据我了解原始问题,git正在尝试找到SSL证书文件以使用HTTPS协议,但未能找到该文件。这里的大多数答案似乎都集中在“好吧,然后禁用SSL”,而不是正确地替换文件。

此咒语应生成证书文件,并将其放在cygwin上git的正确位置:

$ curl -sL http://ca.pdinc.us > /etc/pki/ca-trust/source/anchors/ca.pdinc.us.pem \
&& update-ca-trust

万一您遇到了git config(像我一样)并且需要将其设置为BACK的情况,应该这样做:

$ git config --global http.sslcainfo "/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt"

另一条注释可能会影响阅读此线程的许多人:cert文件的预期位置取决于您正在运行的git可执行文件。由于我们在谈论Cygwin,因此我们中的某些(大多数?)可能也安装了Windows本地版本的git。如果您设置了Cygwin路径以查找Windows git可执行文件,则根据指向http.sslcainfo配置的位置的不同,您的工作量可能会有所不同。要检查为您选择了哪个可执行文件,请执行以下操作:

$ which git

答案 22 :(得分:0)

我以前安装过git,然后将其卸载。

所以对我而言,就像从

重新安装正确版本的git (对我来说是x64)一样简单

https://git-scm.com/download/win

答案 23 :(得分:-2)

我也遇到类似的问题,但是卸载gitbash并重新安装到系统对我来说很有效。