前言
在使用 git
克隆代码的时候,经常会碰到下面的报错信息
SSL certificate problem: unable to get local issuer certificate
解决方法一
看错误信息,大概就知道跟 ssl
相关。最简单的方法就是在克隆的时候,不去验证 ssl
,来到命令行( windows
的话,就到 CMD
),输入
git config --global http.sslverify false
重新克隆就 OK
了。
解决方法二
方法一忽略 ssl
,比较简单粗暴,很多人会担心安全问题,那么就可以采用方法二。这种方法适用于所有的 git
服务(包括自建的,比如 gitlab
、gogs
等),本文仅以 github
站点为例
点击浏览器网址左侧的小锁,选择证书
来到详细信息,点击下方的复制到文件
下一步
选择 Base64
编码
填写保存证书文件的位置
完成
接下来看看 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.