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

相关推荐
深海鱼在掘金3 天前
Git 完全指南 —— 第1章:Git 概览与版本控制演进
git
noravinsc3 天前
关于Git Flow
git
蜜獾云3 天前
在Git中配置用户名和密码
git
scx_link4 天前
通过git bash在本地创建分支,并推送到远程仓库中
开发语言·git·bash
南大白4 天前
IntelliJ IDEA 运行时的 JVM 本地内存溢出崩溃
git
码农小旋风4 天前
Claude Code 基础用法大全:对话、分析、修改、测试、Git 和工作流
人工智能·git·chatgpt·claude
南大白4 天前
Git 撤回提交完整方案
git
像风一样的男人@4 天前
python --实现代理服务器
git·ui
sbjdhjd4 天前
从零搭建企业级 CI/CD(下):Jenkins+GitLab+Harbor 全链路实战指南
git·servlet·ci/cd·云原生·云计算·gitlab·jenkins
码云数智-大飞4 天前
Go Channel 详解:并发通信的正确姿势
前端·数据库·git