问题:
在公司内部的Ubuntu虚拟机上,使用git下载资料时,报错如下。
server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
分析:
以上报错说明资源所在网站的CA不在系统支持列表中,这根本不应该出现,因为一般发布到公网的资源肯定是申请了可信的证书,免费的证书也是证书,也可以被认可的。
因此,一般这种问题是因为公司级网关导致的,只需要按图索骥,将要访问网站的涉及的根证书加入到系统可信列表即可。
操作:
1.获取对应网站“当前的根证书”
按照如下操作,从浏览器提取所需要的根证书文件,并保存为XXX.crt,以供下一步使用。
2.将获取到的根证书导入到系统
查询证书更新指令:
man update-ca-certificates
得到如下说明:
这里介绍了两种证书导入方法:
注意:证书保存时一定要以.crt作为文件后缀,.pem之类的后缀名是不支持的。
方法一:修改配置文件:/etc/ca-certificates.conf
通过修改配置文件/etc/ca-certificates.conf,显示的指定新证书的路径,以供系统解析。
修改完成后,执行update-ca-certificates 即可导入新证书。
wfq@wfq-VirtualBox:ssl4 $ sudo cp IPP.crt /usr/share/ca-certificates/mozilla/
[sudo] password for wfq:
wfq@wfq-VirtualBox:ssl4 $ sudo vim /etc/ca-certificates.conf
wfq@wfq-VirtualBox:ssl4 $ sudo update-ca-certificates
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
方法二:将crt证书文件放到目录:/usr/local/share/ca-certificates
该方法隐式导入了证书文件。
证书放好后,执行update-ca-certificates 即可导入成功。
要删除导入的证书的话,只需要将对应证书删除,再执行 update-ca-certificates 指令即可。
验证
导入证书后,git下载正常。