首页 > 解决方案 > TLS 证书验证已被禁用!在尝试 git fetch 时

问题描述

我正在尝试git fetch在 repo 上执行,但我收到了这个警告:TLS certificate verification has been disabled!虽然这表示警告,但 fetch 操作实际上并没有发生。

在此处输入图像描述

我已在此 repo 的 git 配置中将 sslVerify 设置为 false:-

[http]
    sslVerify = false

因为 repo 包含一个自签名证书。寻求任何帮助。

编辑:远程是一个带有自签名证书的自托管 git 存储库。

标签: gitssl

解决方案


此消息来自 Git Credential Manager Core,它是 Windows 上常用的凭证助手。该消息之所以存在,是因为通过禁用证书验证,您已经消除了 HTTPS 获得的任何安全性,并允许几乎任何可以看到您的网络流量的人查看和篡改您的数据,包括您的凭据。因此,您的连接仅比使用纯 HTTP 好一点点。

如果您访问指定的链接,则会出现概述一些选项的文本:

推荐和最安全的选择是获取由公共可信证书颁发机构 (CA) 签名的 TLS 证书。有多个公共 CA;这是一个非详尽的列表供您考虑:Let's Encrypt、Comodo、Digicert、GoDaddy、GlobalSign。

如果无法从受信任的第 3 方获取 TLS 证书,则应尝试将特定自签名证书或验证链中的 CA 证书之一添加到操作系统的受信任证书存储区(macOS、Windows)。

如果您无法获得可信证书或信任自签名证书,您可以在 Git 和 GCM 中禁用证书验证。

您还可以切换到 SSH,它在首次使用时受信任且不需要 CA 证书,并且通常使用公钥,因此通常根本不发送任何私有凭据。


推荐阅读