Git配置接受特定自签名HTTPS证书

一、 问题背景

连接使用自签名证书的 HTTPS 远程仓库时,Git 默认校验失败并拒绝连接。可通过以下两种方案解决:

  • 方案一(推荐):将自签名证书加入 Git 信任库,保持 SSL 校验。
  • 方案二(临时):针对特定仓库 URL 关闭 SSL 校验。

二、 方案一:信任特定自签名证书(安全)

  1. 导出证书

    • 浏览器访问仓库 HTTPS 地址。
    • 点击地址栏锁图标 -> 证书详情 -> 导出为 .pem.crt 格式。
    • 保存至本地固定路径,如 /path/to/certificate.pem
  2. 配置 Git CA Bundle

    1
    2
    3
    4
    5
    6
    7
    8
    # 全局生效(推荐)
    git config --global http.sslCAInfo /path/to/certificate.pem

    # 仅当前仓库生效
    git config http.sslCAInfo /path/to/certificate.pem

    # 验证配置路径
    git config --global http.sslCAInfo

三、 方案二:针对特定仓库禁用 SSL 验证(便捷)

适用于内网测试或临时调试,不推荐用于生产环境。

1
2
3
4
5
# 针对特定远程 URL 全局禁用验证
git config --global http.https://example.com.sslVerify false

# 仅当前仓库禁用验证
git config http.sslVerify false

四、 验证配置

1
2
3
4
5
# 克隆仓库
git clone https://example.com/repository.git

# 拉取更新
git pull origin main

执行无 SSL certificate problem 报错即表示配置生效。

五、 注意事项

  • 自签名证书无法验证服务器真实身份,存在中间人攻击风险。
  • 仓库级配置 (git config) 优先级高于全局配置 (--global)。
  • 生产环境建议申请受信任的 CA 证书,或使用企业内网 CA 统一签发。