[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 安装路径或证书文件的路径被更改,或者证书文件被删除,用户可能需要更新这些配置以指向正确的证书文件。

相关推荐
GISer_Jing6 分钟前
Git协作开发:feature分支、拉取最新并合并
大数据·git·elasticsearch
高山莫衣6 小时前
git rebase多次触发冲突
大数据·git·elasticsearch
码农藏经阁6 小时前
工作中常用的Git操作命令(一)
git
kobe_OKOK_6 小时前
【团队开发】git 操作流程
git·elasticsearch·团队开发
码农垦荒笔记6 小时前
Git 安装闭坑指南(仅 Windows 环境)
windows·git
CC码码16 小时前
管理你的多个 Git 密钥(多平台多账号)
git·gitlab·github
CC码码16 小时前
管理你的多个 Git 密钥(单平台多账号)
git·gitlab·github
大卫小东(Sheldon)16 小时前
GIM 1.5发布了! 支持Windows系统了
git·ai·rust
flying jiang16 小时前
将大仓库拆分为多个小仓库
git
李boyang10 天前
Git(四):远程操作
git