Gitea服务证书有效但Git拉取时报CA验证失败问题求助
Gitea证书校验失败故障修复方案
根因说明
该报错核心原因90%以上是Gitea服务端未配置完整证书链:Certbot生成的证书包含叶子证书、中间证书两部分,仅配置叶子证书时,客户端无法通过系统根CA追溯到服务器证书的信任关系,因此触发校验失败。此前仅通过openssl验证证书有效期、未校验完整信任链,所以没能定位到问题。
修复步骤
- 第一步:确认证书链异常
执行以下命令校验完整证书链有效性,重点查看返回末尾的Verify return code字段:
若返回值不是openssl s_client -servername git.the-domain.com -connect git.the-domain.com:4430 (ok),即可确认是服务端证书链配置问题。 - 第二步:修改Gitea证书配置
编辑Gitea配置文件app.ini,找到[server]配置段,修改证书路径配置:
配置修改完成后重启Gitea服务生效:[server] # 注意此处必须填Certbot生成的fullchain.pem路径,不要填cert.pem CERT_FILE = /etc/letsencrypt/live/git.the-domain.com/fullchain.pem KEY_FILE = /etc/letsencrypt/live/git.the-domain.com/privkey.pemsystemctl restart gitea - 第三步:客户端侧校验(可选)
若服务端修改后仍有报错,更新客户端的根CA证书包即可:# Debian/Ubuntu系 apt update && apt install --reinstall ca-certificates # CentOS/RHEL系 yum update -y ca-certificates - 验证修复结果
重新执行Git拉取操作,无需关闭SSL校验即可正常拉取即代表修复完成。
内容的提问来源于stack exchange,提问作者ptheofan
相关产品推荐
相关产品推荐

