[Git] 解决 Git 证书失效导致的 unable to access:error setting certificate verify 问题

一、问题描述

Git clone 远程仓库时失败,报错:

bash 复制代码
Clone Failed {本地仓库地址} fatal:
unable to access "{远程仓库}.git/":
error setting certificate verify locations:
CAfile:F:Gitmingw64sslcertsca-bundle.crt
CApath:none

二、问题分析

这个错误是由于 Git 在尝试访问 HTTPS URL 时无法在本地找到证书文件ca-bundle.crt,没有这个文件,Git 就没法验证服务器的证书可不可信,也就无从确认 git clone 下来的文件有没有风险。

ca-bundle.crt是安装 Git 自带的,用不着用户去手动创建或修改。我们只要找到这个 .crt 文件,放到 CAfile 原本想查找的路径下就行了,在我的机器上就是F: 根目录。

三、解决方案

  1. 首先,你需要找到 ca-bundle.crt 文件的实际位置。这个文件通常位于 Git 安装目录下的 mingw64/ssl/certs 文件夹中。

  2. 找到文件后,你需要更新 Git 的配置,使其指向正确的证书文件。你可以使用 git config 命令来更新全局配置:

bash 复制代码
git config --global http.sslCAInfo "/path/to/ca-bundle.crt"

请将 /path/to/ca-bundle.crt 替换为 ca-bundle.crt 文件的实际路径。

  1. 如果你仍然遇到问题,你可以尝试禁用 Git 的 SSL 验证。但是请注意,这将使你的连接不再安全,因此只有在你确定你的网络连接是安全的情况下才应该这样做:
bash 复制代码
git config --global http.sslVerify false

以上步骤应该可以解决你的问题。如果问题仍然存在,你可能需要重新安装 Git 或检查你的网络连接。

拓展

CAfileCApath 是 Git 在进行 HTTPS 连接时用于 SSL 证书验证的配置。

  • CAfile:这是一个包含一个或多个 CA(证书颁发机构)证书的文件。Git 会使用这些证书来验证服务器的 SSL 证书。这个文件通常是一个 PEM 格式的文件,包含了一个或多个由可信任的 CA 签名的证书。

  • CApath:这是一个目录,其中包含多个以哈希值命名的证书文件。Git 会使用这些证书来验证服务器的 SSL 证书。这个目录中的证书文件通常是由可信任的 CA 签名的。

这两个配置都是由 Git 使用的 OpenSSL 库来处理的。当 Git 通过 HTTPS 连接到远程服务器时,服务器会提供一个 SSL 证书。Git 会使用 CAfileCApath 中的证书来验证服务器证书的有效性。如果服务器的证书不能被验证,Git 会拒绝连接并显示一个错误。

这些证书文件通常是由操作系统或 Git 安装程序提供的,也可以由用户自己提供。在大多数情况下,用户不需要修改这些配置。但是,如果 Git 安装路径或证书文件的路径被更改,或者证书文件被删除,用户可能需要更新这些配置以指向正确的证书文件。

相关推荐
雁于飞6 小时前
vscode中使用git、githup的基操
笔记·git·vscode·学习·elasticsearch·gitee·github
小毛驴85017 小时前
所有微服务部署都使用一个git地址,并且通过docker部署各个服务的情况下,如何编写mvn指令来处理各个服务。
git·docker·微服务
国王不在家17 小时前
git 切换仓库后清理分支缓存
git
柯南二号21 小时前
【Gitlab】Ubuntu 20.04服务器部署Gitlab
git·gitlab
phac12321 小时前
git 如何直接拉去远程仓库的内容且忽略本地与远端不一致的commit
大数据·git·elasticsearch
ficker131 天前
git常用命令
git
kevin_cat2 天前
微信群机器人-备份文件发送通知
git·bash·企业微信
程序媛Dev2 天前
50.4k Star!我用这个神器,在五分钟内搭建了一个私有 Git 服务器!
运维·服务器·git
澈轩2 天前
Git 用得好,下班走得早
git
人间造梦工厂2 天前
Git Bash 别名
git