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

相关推荐
咖啡教室4 小时前
日常开发中常用的git操作命令和使用技巧
git
carterwu10 小时前
git工作流程的分类和对应场景
git
2401_8401922710 小时前
如何学习一门计算机技术
开发语言·git·python·devops
EleganceJiaBao12 小时前
【Git】5 个分区的切换方式及示例
git·github·add
LCY1331 天前
spring 中的DAO是什么
运维·git·jenkins
柚几哥哥1 天前
IntelliJ IDEA全栈Git指南:从零构建到高效协作开发
java·git·intellij-idea
遇到困难睡大觉哈哈1 天前
Git推送错误解决方案:`rejected -> master (fetch first)`
大数据·git·elasticsearch
ON.LIN1 天前
Git提交本地项目到Github
git·github
九月镇灵将1 天前
6.git项目实现变更拉取与上传
git·python·scrapy·scrapyd·gitpython·gerapy
wuyijysx1 天前
ubuntu git cola gui
git·软件工具