Knighthana
文章96
标签139
分类7

文章归档

git clone 时提示证书不存在或过期的问题

git clone 时提示证书不存在或过期的问题

git clone 时提示证书不存在或过期的问题

从目标服务器上向本地clone项目时,提示

fatal: unable to access '...' : server certificate verification failed. CAfile: none CRLfile: none

一个证书问题,简洁明了。

首先可以得到结论,这里连到的远程目标上的确配置了https,但是证书不存在。

是不是DNS环节出了问题?用nslookup在aliyunDNS,也就是本地目前正在使用的DNS,上查到了远程目标的IP,在某外国网站上验证了IP对应主机的地理位置,是Google的云服务器机房没错。

打开远程目标的网页版,查找了一下,远程目标使用的是R3签发证书,至少根据Chrome的判断,这个证书是有效的。

在网页上搜索了一下关键词

server certificate verification failed. CAfile: none CRLfile: none

找到的结果,不是要关掉git的证书验证功能,就是要手动修改证书。要么是只管驼背的灵活医治法,要么看起来过于奇技淫巧。

听起来不太靠谱。如果一个项目按照规范的方法部署,一切正常,那么就不会存在只能用奇技淫巧才能解决的问题,如果用了奇技淫巧,那就像是在稳固的承重墙上打洞,迟早有一天会在这个环节崩掉。

最终,在适用于 Windows 的 Git:SSL 证书问题:证书已过期(Git for Windows: SSL certificate problem: certificate has expired)上找到了一个思路:这个话题中的本地证书过期了,那么我这边的本地证书上面是不是缺少了一些签发机构。

回忆一下,本地机的确有很久没有更新过了。

回到home,sudo apt update,得到结果,需要更新273个包。

apt list --upgradable | grep git,git赫然在列。

于是sudo apt upgrade git

更新完毕之后,顺利git clone

(以及发现更新了git和git依赖的包之后,本机所有的包全都被更新了一遍)

记录一下,为将来解决某些问题留作启示。

Knightana

2022/04/18