如何解决企业VPN引发的Git与Firefox SSL证书信任错误?
修复Git(Schannel)与Firefox证书信任问题的方案
问题核心
Git依赖Schannel调用Windows系统证书库,Firefox开启security.enterprise_roots.enabled后也会读取系统/企业根证书,两者同时失效说明系统证书信任链或Cisco AnyConnect的证书配置出现异常,以下是针对性修复步骤:
1. 检查并修复Cisco AnyConnect证书
- 打开AnyConnect客户端,进入「偏好设置」→「证书」,确认企业根证书/中间证书未过期、未丢失。
- 若证书异常,从IT部门获取最新企业根证书,手动导入系统证书库:
- 按下
Win+R输入mmc打开控制台,点击「文件」→「添加/删除管理单元」,选择「证书」→「计算机账户」→「本地计算机」完成添加。 - 展开「受信任的根证书颁发机构」→「证书」,右键选择「所有任务」→「导入」,按向导完成证书导入。
- 按下
- 重启AnyConnect并重新连接VPN后,测试Git和Firefox。
2. 重置Windows Schannel证书缓存
以管理员身份打开命令提示符(CMD),依次执行以下命令:
net stop cryptsvc del /q /f /s "%ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\RSA\MachineKeys\*" net start cryptsvc
执行完成后重启电脑,先恢复Git的安全设置:
git config --global http.sslVerify true
再测试Git操作。
3. 修复Firefox证书信任
- 打开Firefox,输入
about:preferences#privacy,滚动到「隐私与安全」→「证书」,点击「查看证书」。 - 切换到「受信任的根证书颁发机构」标签,检查是否存在企业根证书;若不存在,点击「导入」选择之前导入的企业根证书,勾选「信任由此证书颁发机构标识的网站」。
- 输入
about:support,点击「刷新Firefox」(提前备份书签等数据),刷新后确认about:config中security.enterprise_roots.enabled仍为true。
4. 验证Git的Schannel配置
- 确认全局配置:
若输出不是git config --global --get http.sslBackendschannel,重新设置:git config --global http.sslBackend schannel - 检查仓库局部配置(进入目标仓库目录):
若有非schannel的输出,执行以下命令删除局部覆盖:git config --local --get http.sslBackendgit config --local --unset http.sslBackend
内容的提问来源于stack exchange,提问作者AlexV
相关产品推荐
相关产品推荐

