server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

  • Post author:
  • Post category:其他


问题:

在公司内部的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下载正常。



版权声明:本文为sunshine_ysu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。