前言
最近在使用 GitHub 上传公开代码和资料时,遇到默认访问缓慢甚至无法访问的问题。在尝试克隆或提交代码后,第二天突然显示 443 提示无法连接到服务器。
解决方法
通过直接配置全局参数并移除自定义的 PEM 文件路径设置来解决该问题。



证书提示
错误信息:error setting certificate file: /path/to/cacert.pem
此错误表示 Git 在尝试进行 SSL/TLS 安全连接时,无法找到或无法正确使用指定的证书包文件(cacert.pem)。Git 需要一组受信任的根证书来验证 GitHub 服务器的身份。如果找不到该文件、路径错误或文件损坏,就会抛出此错误。
请按顺序尝试以下方法解决:
方法一:最简单的方法(推荐)- 让 Git 使用系统自带的证书存储
这是最直接、最一劳永逸的方法。我们不需要指定自定义的证书文件,而是让 Git 使用操作系统或 Git 自己内置的证书存储。
- 打开 Git Bash 或命令行。
- 执行以下命令,告诉 Git 不要使用任何自定义的证书文件,而是使用系统默认的:
git config --global --unset http.sslCAInfo
git config --global --unset http.sslCAPath
这两个命令会删除全局配置中关于自定义证书路径的设置。对于大多数现代 Windows 系统(Git for Windows 2.14+)和 macOS 系统,这通常能立刻解决问题。
如果方法一之后问题依旧,请继续尝试方法二。
方法二:手动指定正确的证书文件路径
有时,特别是某些旧版 Git 或特殊环境下,可能需要手动告诉 Git 证书文件在哪里。
第一步:找到 cacert.pem 或 ca-bundle.crt 文件
这个文件通常就在你的 Git 安装目录里。
- 常见的路径可能是:
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。
第二步:设置正确的路径
一旦找到了正确的文件,使用以下命令将其路径配置给 Git:
git config --global http.sslCAInfo "C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt"
重要提示:
- 在 Windows 的 Git Bash 中使用路径时,建议使用正斜杠格式,或者使用双引号将包含空格的路径括起来。
- 确保路径完全正确,一个字符都不能错。
方法三:临时忽略 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 官方网站下载最新版本。
- 重新安装。在安装过程中,所有默认选项通常就是最佳选择。
总结与操作流程
- 首先尝试方法一:
git config --global --unset http.sslCAInfo。这是最干净利落的解决方案,90% 的情况能搞定。 - 如果不行,尝试方法二:仔细找到正确的
ca-bundle.crt文件路径并重新配置。 - 如果只是临时的紧急需求,可以考虑方法三,但务必记得事后恢复。
- 如果问题非常顽固,方法四(重装) 总能解决问题。
根据你的描述,方法一大概率能直接解决你的问题。请先尝试它。


