fatal: unable to access ‘https://github.com/xxx/‘: SSL peer certificat

发布于:2025-02-16 ⋅ 阅读:(37) ⋅ 点赞:(0)

从github上clone代码时报错 F:\Projects>git clone https://github.com/xxx into 'xxx'... fatal: unable to access 'https://github.com/xxx/': SSL peer certificate or SSH remote key was not OK


F:\Projects>git clone https://github.com/xxx into ‘xxx’…
fatal: unable to access ‘https://github.com/xxx/’: SSL peer certificate or SSH remote key was not OK)
从错误信息 fatal: unable to access 'https://github.com/chatchat-space/Langchain-Chatchat/': SSL peer certificate or SSH remote key was not OK 可以看出,Git 在尝试克隆仓库时遇到了 SSL 证书问题。以下是可能的原因和解决方法:


可能的原因

  1. SSL 证书问题

    • 系统可能无法验证 GitHub 的 SSL 证书。
    • 可能是系统时间不正确,导致证书验证失败。
    • 也可能是防火墙或代理阻止了 SSL 连接。
  2. Git 配置问题

    • Git 的 SSL 验证配置可能被禁用或配置错误。
  3. 网络问题

    • 网络环境可能限制了访问 GitHub。

解决方法

1. 检查系统时间

SSL 证书验证依赖于系统时间。如果系统时间不正确,可能会导致证书验证失败。

  • 打开 Windows 设置,检查系统时间是否正确。
  • 如果不正确,请同步时间:
    1. 右键点击任务栏的时间,选择“调整日期/时间”。
    2. 打开“自动设置时间”和“自动设置时区”。
2. 禁用 SSL 验证(临时解决方案)

如果确定网络环境安全,可以临时禁用 SSL 验证:

  • 运行以下命令:
    git config --global http.sslVerify false
    
  • 然后重新尝试克隆仓库:
    git clone https://github.com/chatchat-space/Langchain-Chatchat
    

注意:禁用 SSL 验证会降低安全性,建议仅在信任的网络环境中使用。

3. 更新 Git

确保你使用的是最新版本的 Git。旧版本可能存在 SSL 相关的问题。

4. 检查网络代理

如果在公司或学校网络,可能需要配置代理:

  • 查看是否使用了代理:
    env | grep -i proxy
    
  • 如果使用了代理,配置 Git 使用代理:
    git config --global http.proxy http://proxy.example.com:port
    git config --global https.proxy https://proxy.example.com:port
    
  • 如果没有代理,尝试禁用代理:
    git config --global --unset http.proxy
    git config --global --unset https.proxy
    
5. 使用 SSH 代替 HTTPS

如果你有 SSH 密钥,可以尝试使用 SSH 克隆仓库:

  1. 生成 SSH 密钥(如果还没有):
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
  2. 将公钥添加到 GitHub:
    • 复制公钥:
      cat ~/.ssh/id_rsa.pub
      
    • 登录 GitHub,进入 Settings > SSH and GPG keys,添加公钥。
  3. 使用 SSH 克隆仓库:
    git clone git@github.com:chatchat-space/Langchain-Chatchat.git
    
6. 检查防火墙或杀毒软件

某些防火墙或杀毒软件可能会阻止 Git 的 SSL 连接。

  • 暂时禁用防火墙或杀毒软件,然后重试。
  • 如果问题解决,将 Git 添加到防火墙或杀毒软件的白名单。
7. 手动更新 CA 证书

如果你的系统缺少根证书,可能会导致 SSL 验证失败。

  • 下载最新的 CA 证书包,例如 cURL 的 CA 证书
  • 配置 Git 使用这些证书:
    git config --global http.sslCAinfo /path/to/cacert.pem
    

总结

  • 首先检查系统时间和网络环境。
  • 尝试禁用 SSL 验证(git config --global http.sslVerify false)。
  • 如果问题仍然存在,使用 SSH 克隆仓库。
  • 如果问题持续,考虑更新 Git 或检查防火墙设置。