我在Windows上使用Git。我安装了msysGit包。我的测试存储库在服务器上有一个自签名证书。我可以毫无问题地使用HTTP访问和使用存储库。移动到HTTPS会出现以下错误:

SSL证书问题:无法获得本地颁发者证书。

我在Windows 7客户端机器的受信任根证书颁发机构中安装了自签名证书。我可以在Internet Explorer中浏览到HTTPS存储库URL,而不会出现错误消息。

Philip Kelley的这篇博客文章解释了cURL不使用客户端机器的证书存储。我按照博客文章的建议创建了curl-ca-bundle的私有副本。然后配置Git使用它。我确定Git正在使用我的副本。如果我重命名副本;Git抱怨文件丢失。

我粘贴了我的证书,正如博客文章中提到的,我仍然得到“无法获得本地发行人证书”的消息。

我通过HTTPS克隆GitHub仓库来验证Git仍然在工作。

我看到的唯一不同于博客文章的地方是我的证书是根证书——没有链可以到达它。我的证书最初来自点击IIS8 IIS管理器链接“创建自签名证书”。也许这使得证书在某种程度上与cURL所期望的有所不同。

如何让Git/cURL接受自签名证书?


当前回答

这对我很有用。我打开cmd行并运行以下命令。又拉了一下。

Git配置——global http。sslVerify假

其他回答

如果要完全禁用SSL验证,则打开Git Bash并运行该命令。

git config --global http.sslVerify false

注意:此解决方案使您容易受到中间人攻击等攻击。 因此,尽快再次开启验证:

git config --global http.sslVerify true

我在使用visual studio时出现了这个错误。当您在Visual Studio选项窗口中将加密网络提供程序设置设置为OpenSSL时,就会发生这种情况。当我将设置更改为安全通道时,它为我解决了这个问题。这个设置一定是在我升级我的VS时为我设置的。

在运行composer update/install之前使用此命令:

git config --global http.sslverify false

下载并安装本地证书。它可能在你的公司网站上发布。例如,*。cer文件。

右键单击它并选择安装证书。将出现“证书导入向导”。选择本地机器。按Next,确认。 选择“将所有证书放入以下存储区”,按“浏览”并选择“受信任的根证书颁发机构”,“确定”,“完成”。

此外,您还可以检查其他应用程序是否可以获取、拉取或推送数据。例如,在Android Studio或IDEA中,你应该在设置中选择这个复选框:使用凭证帮助。

我在Azure DevOps (Visual Studio)上也遇到过同样的问题。最后,我决定克隆我的回购使用SSH协议,因为我更喜欢它而不是禁用SSL验证。

你只需要生成一个SSH密钥,你可以这样做…SSH的文档

ssh-keygen

然后,在yout git主机上导入公钥(如Azure Devops, Github, Bitbucket, Gitlab等)。