博主个人微信:xituxiaoshutong100

解决git克隆时的SSL certificate problem: unable to get local issuer certificate

IT技巧 迷途小书童 0评论

前言

在使用git克隆代码的时候,经常会碰到下面的报错信息

SSL certificate problem: unable to get local issuer certificate

解决方法一

看错误信息,大概就知道跟ssl相关。最简单的方法就是在克隆的时候,不去验证ssl,来到命令行(windows的话,就到CMD),输入

git config --global http.sslverify false

重新克隆就OK了。

解决方法二

方法一忽略ssl,比较简单粗暴,很多人会担心安全问题,那么就可以采用方法二。这种方法适用于所有的git服务(包括自建的,比如gitlabgogs等),本文仅以github站点为例

点击浏览器网址左侧的小锁,选择证书

git ssl

来到详细信息,点击下方的复制到文件

git ssl

下一步

git ssl

选择Base64编码

git ssl

填写保存证书文件的位置

git ssl

完成

git ssl

接下来看看git默认使用的证书

使用命令git config --list --show-origin,可以看到http.sslcainfo这个变量的值是C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt,也就是默认的证书存放位置,我们将ca-bundle.crt文件拷贝出来备用

(base) PS D:\Projects> git config --list --show-origin
file:"C:\\ProgramData/Git/config"       core.symlinks=false
file:"C:\\ProgramData/Git/config"       core.autocrlf=true
file:"C:\\ProgramData/Git/config"       core.fscache=true
file:"C:\\ProgramData/Git/config"       color.diff=auto
file:"C:\\ProgramData/Git/config"       color.status=auto
file:"C:\\ProgramData/Git/config"       color.branch=auto
file:"C:\\ProgramData/Git/config"       color.interactive=true
file:"C:\\ProgramData/Git/config"       help.format=html
file:"C:\\ProgramData/Git/config"       rebase.autosquash=true
file:C:/Program Files/Git/mingw64/etc/gitconfig http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
file:C:/Program Files/Git/mingw64/etc/gitconfig http.sslbackend=openssl
file:C:/Program Files/Git/mingw64/etc/gitconfig diff.astextplain.textconv=astextplain
file:C:/Program Files/Git/mingw64/etc/gitconfig filter.lfs.clean=git-lfs clean -- %f
file:C:/Program Files/Git/mingw64/etc/gitconfig filter.lfs.smudge=git-lfs smudge -- %f
file:C:/Program Files/Git/mingw64/etc/gitconfig filter.lfs.process=git-lfs filter-process
file:C:/Program Files/Git/mingw64/etc/gitconfig filter.lfs.required=true
file:C:/Program Files/Git/mingw64/etc/gitconfig credential.helper=manager

接下来,将从github站点导出的证书文件内容全部拷贝,包括了开头的-----BEGIN CERTIFICATE-----和结尾的-----END CERTIFICATE-----,粘贴到ca-bundle.crt文件的末尾。

可以看到ca-bundle.crt是证书的集合,一个站点一条记录。

然后进行git的配置,将http.sslcainfo指向修改后的ca-bundle.crt文件

git config --global http.sslcainfo C:/Users/Matt/ca-bundle.crt

最后,重新git clone测试一下

(base) PS D:\Projects> git clone https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch.git
Cloning into 'Yolov5_DeepSort_Pytorch'...
remote: Enumerating objects: 39, done.
remote: Counting objects: 100% (39/39), done.
remote: Compressing objects: 100% (30/30), done.
喜欢 (0)
发表我的评论
取消评论

表情