Gitea 1.16.9 LFS镜像同步失败:x509未知证书颁发机构问题
解决Gitea 1.16.9镜像节点LFS同步证书验证失败问题
问题根源
Gitea的LFS同步进程未加载到自定义CA证书,Docker环境下默认信任链不包含挂载目录中的CA文件,且1.16.9版本需明确配置CA路径才能让LFS同步进程识别。
具体解决方案
1. 确认CA证书有效性与路径
- 确保CA证书为PEM格式(后缀
.pem/.crt),已放置在宿主机挂载卷gitea/giteadata/gitea/conf/cert目录下,例如命名为custom-ca.pem。 - 进入容器验证文件存在:
(官方Docker镜像中docker exec 你的Gitea容器ID/名称 ls /data/gitea/conf/cert/data对应宿主机的gitea/giteadata挂载卷)
2. 修改Gitea配置文件app.ini
在[server]区块添加/更新以下配置:
[server] # 指定自定义CA证书的容器内绝对路径,多文件用逗号分隔 SSL_TRUSTED_CA_FILE = /data/gitea/conf/cert/custom-ca.pem # 确保LFS服务正常启用 LFS_START_SERVER = true # 若未配置过LFS JWT密钥,生成随机字符串填入 LFS_JWT_SECRET = 随机字符串
注意:1.16.9版本中
SSL_TRUSTED_CA_FILE会被Git和LFS同步进程共用,必须填写容器内路径而非宿主机路径。
3. 重启Gitea容器
docker restart 你的Gitea容器ID/名称
4. 验证证书加载状态
查看容器日志确认CA证书已加载:
docker logs 你的Gitea容器ID/名称 | grep "SSL_TRUSTED_CA_FILE"
出现Loaded SSL trusted CA file: /data/gitea/conf/cert/custom-ca.pem则说明配置生效。
5. 触发手动同步验证
在镜像节点Gitea后台找到对应仓库的镜像设置,点击「立即同步」,观察日志是否仍存在证书错误。
额外排查项
- 若使用自签名证书,确保两台Gitea的证书由同一CA签发,且CA文件包含完整信任链(根CA+中间CA)。
- 修正证书文件权限,确保Gitea进程(默认用户
git)可读取:docker exec 你的Gitea容器ID/名称 chown git:git /data/gitea/conf/cert/custom-ca.pem
内容的提问来源于stack exchange,提问作者matjaz
相关产品推荐
相关产品推荐

