解决 git clone 时报错 SSL certificate problem: self-signed certificate in certificate chain

当你尝试从远程仓库克隆 Git 存储库时,遇到 “SSL certificate problem: self-signed certificate in certificate chain” 错误,通常表明远程服务器使用的 SSL 证书不被你的系统信任。

以下是几种解决方案:

1. 配置 Git 忽略 SSL 验证

不推荐此方法,因为它会降低连接的安全性。但是如果对安全性要求不高,这个方法是最快捷的。

git -c http.sslVerify=false clone <repository-url>

2. 安装并信任自签名证书

如果你有权访问自签名证书,可以在本地计算机上安装该证书。步骤因操作系统不同而有所不同。

在 Linux 上:

将自签名证书添加到受信任的证书存储中:

  1. 将你的证书文件(例如 self-signed.pem)复制到 /usr/local/share/ca-certificates/ 目录。
  2. 更新证书存储:sudo update-ca-certificates

在 Windows 上:

  1. 运行 certmgr.msc 打开证书管理控制台。
  2. 导入自签名证书到 “受信任的根证书颁发机构”。

在 macOS 上:

使用 Keychain Access 应用程序将证书添加到系统或登录钥匙串,并将其设置为 “始终信任”。

3. 修改 Git 配置信任证书

  1. 获取自签名证书并保存(例如 self-signed.pem)。
  2. 更改 Git 配置使用自签名证书:git config --global http.sslCAInfo /path/to/self-signed.pem

4. 使用 SSH 克隆(如果可能)

如果远程仓库支持 SSH,可尝试使用 SSH 克隆而不是 HTTPS:

git clone git@<server>:<username>/<repository>.git

使用 SSH 需要在 git 中配置 SSH 密钥,以 GitLab 为例,可以参考:GitLab 如何添加 SSH 密钥?

5. 更新 Git 客户端

有时问题可能是由于旧版本的 Git 客户端和 SSL 库引起的。更新 Git 客户端到最新版本可能解决问题。

建议:

如果自签名证书来自内部服务器或测试环境,以上方法可以暂时解决问题。然而,在生产环境中,建议使用由受信任的 CA 签发的正式 SSL 证书。

耕读君
耕读君

一个筋斗十万八千里,说明上云好啊

文章: 197

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注