git push 提交代码SSL certificate problem: unable to get local issuer certificate"
时间: 2024-12-29 07:26:38 浏览: 26
### 解决 Git 推送时遇到的 SSL 证书问题
当遇到 `SSL certificate problem: unable to get local issuer certificate` 错误时,这通常是因为 Git 客户端无法验证远程仓库服务器的 SSL 证书。以下是几种解决方案:
#### 方法一:配置 Git 跳过 SSL 验证
虽然不推荐用于生产环境,但在某些情况下可以临时跳过 SSL 验证来解决问题。
```bash
git config --global http.sslVerify false
```
这种方法会禁用所有 HTTPS 请求中的 SSL 验证[^1]。
#### 方法二:安装并更新 CA 证书包
确保本地计算机上已安装最新的 CA 证书包。对于不同操作系统,具体命令如下:
- **Ubuntu/Debian**:
```bash
sudo apt-get install ca-certificates
```
- **CentOS/RHEL**:
```bash
sudo yum install ca-certificates
```
- **macOS (Homebrew)**:
```bash
brew update && brew reinstall openssl ca-certificates
```
完成上述操作后重启终端或重新加载 shell 环境变量[^2]。
#### 方法三:指定自定义 CA 文件路径
如果使用的是企业内部 GitLab 或其他私有 Git 服务,则可能需要设置特定于该站点的信任链文件位置。
```bash
git config --global http.sslCAInfo /path/to/cert.pem
```
这里的 `/path/to/cert.pem` 应替换为实际 PEM 编码 X.509 信任链文件的位置。
#### 方法四:克隆子模块时不校验 SSL
针对 `$ git submodule update` 操作引发的问题,在执行此命令前可先设定忽略 SSL 校验选项。
```bash
GIT_SSL_NO_VERIFY=true git submodule update --init --recursive
```
这种方式仅影响当前命令期间的行为,并不会永久更改全局配置。
阅读全文