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

相关推荐
但老师5 小时前
Git遇到“fatal: bad object refs/heads/master - 副本”问题的解决办法
git
秃头女孩y5 小时前
git创建分支
git
研究是为了理解10 小时前
Git Bash 常用命令
git·elasticsearch·bash
DKPT10 小时前
Git 的基本概念和使用方式
git
Winston Wood13 小时前
一文了解git TAG
git·版本控制
喵喵先森14 小时前
Git 的基本概念和使用方式
git·源代码管理
xianwu54315 小时前
反向代理模块
linux·开发语言·网络·git
binishuaio17 小时前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
会发光的猪。18 小时前
如何在vscode中安装git详细新手教程
前端·ide·git·vscode
stewie620 小时前
在IDEA中使用Git
java·git