$ 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
当我拉或推我的代码时,我收到此错误。
请指导我解决此问题。
答案 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
答案 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)
答案 23 :(得分:-2)
我也遇到类似的问题,但是卸载gitbash并重新安装到系统对我来说很有效。