关于使用 git 命令行时遇到的错误消息 unable to get local issuer certificate

举报
Jerry Wang 发表于 2023/01/20 19:50:53 2023/01/20
【摘要】 用文本编辑器打开位于上述目录中的文件 ca-bundle.crt,然后将 Git SSL 证书的内容同样用文本编辑器打开,复制并粘贴到文件末尾。 完成后,保存文件并运行 git pull、push 或 clone 命令。

unable to get local issuer certificate 是开发人员在尝试使用特定于 Windows 的命令行工具 Git Bash 推送、拉取或克隆 git 存储库时面临的常见问题。

当 Git 服务器的 SSL 证书是自签名(self-signed)时,经常会出现无法获取本地颁发者证书的错误。 自签名证书的问题是与它们关联的私钥不能被撤销,这使其成为一个安全漏洞。

另一种可能的原因是由于系统上的 Git 配置不正确,或者在 Visual Studio Code (VS Code) 终端中使用 git 时的配置不正确。

unable to get local issuer certificate 是由本地计算机上的 SSL 证书配置错误引起的。 在推送、拉取或克隆时,Git 无法验证本地的 SSL 证书,从而导致错误。

有效的 HTTPS 握手要求客户端和服务器共同努力以便创建安全连接,从而允许本地计算机与托管源代码的位置之间进行安全通信。 当本地计算机的 SSL 证书无法验证时,Git 无法完成与托管存储库的服务器的 HTTPS 握手。

当 VS Code 中出现 无法获取本地颁发者证书错误时,通常是因为 Visual Studio 找不到 SSL 证书。 这可能是由于本地计算机上的路径配置错误。

当自签名证书导致出现 ssl 证书问题时,解决方法是将证书添加到受信任的证书存储(trusted certificate store)中。

默认情况下,受信任的证书存储位于 Git Bash 的以下目录中:

C:\Program Files\Git\mingw64\ssl\certs\

在我电脑上的例子:

用文本编辑器打开位于上述目录中的文件 ca-bundle.crt,然后将 Git SSL 证书的内容同样用文本编辑器打开,复制并粘贴到文件末尾。 完成后,保存文件并运行 git pull、push 或 clone 命令。

出于安全考虑,不建议禁用 SSL 证书验证。

您可以使用以下命令在 Git 中本地禁用 SSL 证书验证:

git -c http.sslVerify=false clone [URL]

或者是进行全局禁用:

git config --global http.sslVerify false

重新启用:

git config --global http.sslVerify true

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。