Android Studio推送代码至GitLab遇schannel证书信任错误求助
解决GitLab推送时schannel: SEC_E_UNTRUSTED_ROOT证书错误
核心原因
更换后的GitLab SSL证书的根证书未被Windows系统信任,而schannel后端依赖系统证书库进行验证,因此出现信任错误。
解决方案1:将根证书导入Windows系统信任库(推荐)
获取GitLab的根证书
- 用浏览器打开你的GitLab仓库地址,点击地址栏左侧的锁形图标,选择「证书」
- 在证书窗口切换到「证书路径」标签,选中最顶层的根证书,点击「查看证书」
- 切换到「详细信息」标签,点击「复制到文件」,按向导选择「Base64编码的X.509 (.CER)」格式,保存到本地(比如
gitlab-root.cer)
导入到系统信任库
- 找到保存的
.cer文件,右键选择「安装证书」 - 选择「本地计算机」(需管理员权限),点击「下一步」
- 选择「将所有证书放入下列存储」,点击「浏览」,选中「受信任的根证书颁发机构」
- 完成向导,确认安全提示后重启电脑
- 找到保存的
验证Git配置
- 打开命令行执行:
确保输出为git config --global --get http.sslBackendschannel,如果不是则执行:git config --global http.sslBackend schannel - 重启Android Studio,尝试推送代码
- 打开命令行执行:
解决方案2:让Git单独信任该证书(无需修改系统证书)
如果不想修改系统信任库,可直接指定Git使用该证书:
- 按照方案1的步骤导出GitLab的证书(保存为
gitlab.crt,路径比如C:\git-cert\gitlab.crt) - 执行Git配置命令:
注意路径使用正斜杠,或双反斜杠(比如git config --global http.sslCAInfo "C:/git-cert/gitlab.crt"C:\\git-cert\\gitlab.crt) - 重启Android Studio后测试推送
内容的提问来源于stack exchange,提问作者Zahra
相关产品推荐
相关产品推荐

