为特定URL设置http.sslVerify false时git clone不生效问题
问题原因
配置不生效是两个核心问题叠加导致的:
- 你使用的Git 1.8.3.1是RHEL7自带的老旧版本,该版本对
http.<url>.*类配置的匹配逻辑存在版本特性:配置中填写的URL必须和目标仓库URL前缀精确匹配到路径分隔符,也就是要匹配某个域名/IP下的所有仓库,配置的URL末尾必须加斜杠/,你之前配置的是https://10.10.10.10,缺少末尾斜杠,规则无法被识别匹配。 - 核对你报错里的克隆地址:显示为
https://10.10.10.10.10/gitlab-instance-3b9321be/test.git/,这里的地址存在错误:如果是默认443端口的服务,正确IP应该是10.10.10.10,你多写了一段.10;如果GitLab部署在非默认端口(比如10端口),地址应该写为https://10.10.10.10:10/xxx,你把端口前的冒号误写为点,导致实际访问的地址和你配置规则里的IP不匹配,规则自然不会触发。
修复步骤
- 先修正克隆地址,确认实际访问的GitLab服务地址正确,不要出现IP多段、端口符号写错的问题。
- 删除之前配置的无效规则:
git config --global --unset http.https://10.10.10.10.sslverify
- 重新添加针对该GitLab地址的SSL校验忽略规则,注意URL末尾必须加斜杠,适配旧版Git的匹配逻辑:
git config --global --bool --add http.https://10.10.10.10/.sslverify false
- 确认
~/.gitconfig内的配置格式如下:
[http "https://10.10.10.10/"] sslverify = false
配置完成后再执行克隆操作,规则就会只对该IP下的Git仓库生效,不会全局关闭所有Git操作的SSL校验。
更安全的替代方案
关闭SSL校验存在中间人攻击风险,如果条件允许,推荐直接信任自签名证书:
- 将GitLab使用的自签名CA根证书拷贝到
/etc/pki/ca-trust/source/anchors/目录 - 执行
update-ca-trust extract更新系统证书信任链
后续操作该GitLab仓库时不需要关闭SSL校验,安全性更高。
内容的提问来源于stack exchange,提问作者spbarbieri
相关产品推荐
相关产品推荐

