You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab服务器Git LFS证书错误:如何保留SSL验证并实现文件锁定?

问题描述

我在用免费GitLab服务器,尝试通过Git LFS实现文件锁定/解锁功能。执行Git LFS命令时遇到x509证书错误:

$ git lfs locks
Error while retrieving locks: Get "https://*GitlabURL*/info/lfs/locks?refspec=refs%2Fheads%2Fmain": x509: certificate signed by unknown authority

另一个错误示例:

$ git lfs lock lockable.txt
Locking lockable.txt failed: Post "https://hsvdagitb.sci.com/test_group1/test_project.git/info/lfs/locks": x509: certificate signed by unknown authority

我试过在命令前加GIT_SSL_NO_VERIFY=1,或者执行git config --global http.sslVerify false,确实能让Git LFS命令正常运行,但会导致Git LFS的权限校验失效——我锁定文件后,其他用户仍可编辑并推送该文件,无法拦截此类操作。

我需要解决这个x509证书错误,既要正常使用Git LFS的文件锁定功能,又要保留SSL验证,确保已锁定的文件不会被其他用户推送。

关闭SSL验证后的运行示例(存在安全风险):

$ GIT_SSL_NO_VERIFY=1 git lfs locks
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcm/tlsverify for more information.
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcm/tlsverify for more information.
lockable.txt    Firstname Lastname    ID:7
解决方案

核心思路是让Git和Git LFS信任GitLab服务器的证书,而非直接关闭SSL验证。

1. 导入GitLab根证书到系统信任库

  • 获取GitLab服务器的根证书:通过浏览器访问GitLab地址,点击地址栏锁图标 → 查看证书 → 详细信息 → 导出为Base64编码的CER格式文件。
  • 配置系统信任:
    • Linux:将证书文件放到/usr/local/share/ca-certificates/目录,执行sudo update-ca-certificates更新信任列表。
    • Windows:双击证书文件,选择“安装证书”,指定“本地计算机”,将证书放入“受信任的根证书颁发机构”存储。
    • macOS:双击证书文件,在钥匙串访问中选择“系统”钥匙串,设置证书信任级别为“始终信任”。

2. 单独为Git配置证书信任(不修改系统全局)

若不想改动系统全局证书设置,可仅让Git和Git LFS信任该证书:

  • 执行以下命令配置(二选一):
    # 全局生效(所有仓库适用)
    git config --global http.sslCAInfo /path/to/your/gitlab-ca.crt
    # 仅当前仓库生效
    git config http.sslCAInfo /path/to/your/gitlab-ca.crt
    

Git LFS会继承Git的SSL配置,这样既解决了证书验证问题,又能保留Git LFS的锁定权限校验。

3. 验证配置效果

执行git lfs locks命令,若能正常返回锁定列表且无x509错误,同时测试锁定文件后其他用户无法推送,则配置成功。

内容的提问来源于stack exchange,提问作者Jacob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 10:55:13