针对「SSL certificate problem: self signed certificate」问题,以下是综合解决方案及注意事项:

一、临时绕过SSL验证(适用于测试环境)

  1. 设置环境变量
    在命令行中临时禁用SSL验证:
# Windows 
set GIT_SSL_NO_VERIFY=true 
git clone https://xxx.git  

# Linux/macOS 
env GIT_SSL_NO_VERIFY=true git clone https://xxx.git  
  1. 全局禁用SSL验证
    修改Git全局配置,永久关闭SSL校验:
git config --global http.sslVerify  false 

二、配置可信证书(推荐生产环境)

下载CA证书
curl官方 下载最新证书文件,保存到本地路径(如

  1. C:\cacert.pem)。
  2. 配置curl/PHP/Python等工具
    • curl:在代码中添加--cacert /path/to/cacert.pem参数。
    • PHP:在php.ini中添加curl.cainfo=/path/to/cacert.pem
    • Python:在请求中设置verify=False(如requests.get(url, verify=False))。

三、长期解决方案(安全建议)

  1. 使用SSH协议
    将Git仓库地址从
    https://改为ssh://,避免SSL问题:
git clone git@xxx.git  
  1. 部署真实SSL证书
    通过CA机构(如Let's Encrypt)申请免费证书,替换自签名证书,确保客户端信任。

四、注意事项

  • 安全风险:禁用SSL验证会暴露通信内容,可能被中间人攻击窃取敏感数据,仅限测试环境使用
  • 自签名证书风险:自签名证书不受浏览器/系统信任,可能导致用户警告、中间人攻击等问题,建议优先使用真实证书。

五、其他工具场景

  • IntelliJ IDEA:配置Terminal时添加git config --global http.sslVerify false
  • SourceTree:在仓库设置中禁用SSL验证或切换SSH协议。