大家好,我是全栈小5,欢迎来到《小5讲堂》。
这是《源代码管理工具》系列文章,每篇文章将以博主理解的角度展开讲解。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!
目录
前言
最近在参加一个活动,需要用到github上传公开得代码和资料。
大家都知道,默认情况下访问这个github网页是非常缓慢得,甚至是无法访问。
然后折腾了两天,刚开始可以Clone克隆代码下来,也可以提交。
接着,第二天突然显示443提示无法连接到服务器。
解决方法
最后解决是通过直接配置全局参数后,并且去掉上面提示的pem文件。
证书提示
error setting certificate file: /path/to/cacert.pem
这个错误很常见。它表示 Git 在尝试进行 SSL/TLS 安全连接时,无法找到或无法正确使用指定的证书包文件(cacert.pem
)。
核心原因:Git 需要一组受信任的根证书来验证 GitHub 服务器的身份。如果它找不到这个文件,或者文件路径错误、文件本身损坏,就会抛出这个错误。
别担心,我们可以通过以下几种方法来解决它。请按顺序尝试。
方法一:最简单的方法(推荐)- 让 Git 使用系统自带的证书存储【亲测,这方法有效】
这是最直接、最一劳永逸的方法。我们不需要指定自定义的证书文件,而是让 Git 使用你操作系统(Windows/macOS)或 Git 自己内置的证书存储。
-
打开 Git Bash 或命令行。
-
执行以下命令,告诉 Git 不要使用任何自定义的证书文件,而是使用系统默认的:
git config --global --unset http.sslCAInfo git config --global --unset http.sslCAPath
这两个命令会删除全局配置中关于自定义证书路径的设置。
-
再次尝试你的 Git 操作(如
git clone
,git push
)。- 对于大多数现代 Windows 系统(Git for Windows 2.14+)和 macOS 系统,这通常能立刻解决问题。Git 会自动使用系统内置的证书库。
如果方法一之后问题依旧,请继续尝试方法二。
方法二:手动指定正确的证书文件路径
有时,特别是某些旧版 Git 或特殊环境下,可能需要我们手动告诉 Git 证书文件在哪里。
第一步:找到 cacert.pem
文件
这个文件通常就在你的 Git 安装目录里。
-
在 Git Bash 中,你可以通过运行以下命令来快速找到它:
find / -name "cacert.pem" 2>/dev/null | head -1
或者更精确地搜索 Git 的安装目录:
find /mingw64 -name "cacert.pem" 2>/dev/null
-
常见的路径可能是:
C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt
(Windows)C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.trust.crt
(Windows)/usr/ssl/certs/ca-bundle.crt
(Git Bash)- 注意:Git 更常用
ca-bundle.crt
而不是cacert.pem
。
第二步:设置正确的路径
一旦你找到了正确的文件(通常是 ca-bundle.crt
),使用以下命令将其路径配置给 Git:
# 请将下面的路径替换为你实际找到的路径!
git config --global http.sslCAInfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"
重要提示:
- 在 Windows 的 Git Bash 中使用路径时,可以使用类似
C:/Program Files/Git/...
的正斜杠格式,或者使用双引号将包含空格的路径括起来。 - 确保路径完全正确,一个字符都不能错。
方法三:临时忽略 SSL 验证(⚠️ 不推荐,最后的手段)
这是一个不安全的方法,因为它会使你的连接容易受到中间人攻击。除非你完全信任你的网络环境,并且只是临时需要完成某项工作,否则不要这样做。
该方法会告诉 Git 跳过对服务器证书的验证。
# 临时为当前命令禁用SSL验证
git -c http.sslVerify=false clone https://github.com/username/repo.git
# 或者,为当前仓库禁用(进入仓库目录后执行)
git config http.sslVerify false
# 【慎用】全局禁用SSL验证(非常不安全!)
git config --global http.sslVerify false
强烈建议在完成紧急操作后,立即撤销此设置:
git config --global --unset http.sslVerify
方法四:重新安装 Git
如果以上所有方法都失败了,可能是你的 Git 安装本身不完整或已损坏。最彻底的方法就是:
- 卸载当前版本的 Git。
- 从 Git 官方网站 (https://git-scm.com/) 下载最新版本的安装程序。
- 重新安装。在安装过程中,所有默认选项通常就是最佳选择。
总结与操作流程
- 首先尝试方法一:
git config --global --unset http.sslCAInfo
。这是最干净利落的解决方案,90% 的情况能搞定。 - 如果不行,尝试方法二:仔细找到正确的
ca-bundle.crt
文件路径并重新配置。 - 如果只是临时的紧急需求,可以考虑方法三,但务必记得事后恢复。
- 如果问题非常顽固,方法四(重装) 总能解决问题。
根据你的描述,方法一大概率能直接解决你的问题。请先尝试它。
文章推荐
【代码管理】使用github在线源代码管理工具时,遇到443提示服务器无法连接到
【Git】查看凭据管理器的账号信息,并删除账号,解决首次认证登录失败后无法重新登录的问题
总结:温故而知新,不同阶段重温知识点,会有不一样的认识和理解,博主将巩固一遍知识点,并以实践方式和大家分享,若能有所帮助和收获,这将是博主最大的创作动力和荣幸。也期待认识更多优秀新老博主。
转载自CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/lmy_520/article/details/151374367