我试图从 RStudio 克隆 github 的存储库。我已将 git 配置为版本控制可执行文件。
我收到此错误消息:
SSL证书问题:无法获取本地颁发者证书。
我必须做什么?
谢谢
使用以下步骤:
前往 github 站点“www.github.com”
单击地址栏附近的锁定图标“查看站点信息”。
点击证书选项(确保其显示有效)
转到证书路径选项卡,双击证书路径的根图标(证书)
转到详细信息选项卡,然后单击复制到文件按钮
指定完整路径和文件名,无论您想要将其保存为什么(例如。
D:\gitCert.cer
)
打开 git bash 并逐步执行以下命令,
$ git config http.sslCAInfo
$ git config --global http.sslBackend "openssl"
$ git config --global http.sslCAInfo "D:\gitCert.cer"
尝试通过推送更改或克隆一些存储库来连接到 github 服务器。
$ git push -u origin master
我遇到了同样的错误消息,https://github.com/desktop/desktop/issues/9293的线程让我尝试了命令
git config --global http.sslbackend schannel
解决了问题。
您当前是否通过公司网络进行连接?已知某些防火墙设置会导致问题。
但首先要获得快速解决方案,请尝试在命令提示符中输入以下内容
git config --global url."https://".insteadOf git://
众所周知,这可以帮助很多人解决同样的问题。
如果上述方法不起作用,您需要将您的证书添加到 Git 中的受信任证书列表中。
1) 导航至 https://github.com
2) 如果使用 Chrome 或 IE,请单击 URL 中的挂锁图标了解更多详细信息
a. Chrome:点击“详细信息”,然后在打开的侧边栏中点击“查看证书”
b. IE:点击“查看证书”
3) 在“证书”窗口中,导航至“证书路径”选项卡
4)双击列表顶部的“根”证书
5) 在新的“证书”窗口中,导航至“详细信息”选项卡
6) 单击“复制到文件”
a. 选择 Base-64 编码的 X.509 (.CER),然后单击下一步
b. 保存到所需位置(即 Desktop/tempcert.cer),然后单击下一步
c. 单击“完成”,现在证书应保存在提供的位置 目的地
d。 右键单击新保存的证书并使用文本编辑器打开(Visual Code 使用了,因此可能需要“代码”或类似的文本编辑器)
7) 导航到“Git/”中包含“ca-cert-bundle.crt”的目录
8)右键单击“ca-cert-bundle.crt”并选择编辑
9) 复制您之前保存并打开的证书中的所有内容, 介于(包括)之间的所有内容:“-----BEGIN TRUSTED CERTIFICATE-----”到“----” -结束受信任证书-----‘
10) 将这些内容粘贴到“ca-cert-bundle.crt”文件的末尾并保存。
a. 保存到此位置可能受到限制,如果是这样,请选择“另存为”并 将文件保存为“ca-cert-bundle.new.crt”,保存在您有权访问的任何位置 到。如果不限制,请跳至步骤15
11) 导航到您刚刚保存“ca-cert-bundle.new.crt”的位置,然后 复制/剪切文件
12) 将文件粘贴到包含“ca-cert-bundle.crt”的 Git 目录中
a. 系统将提示您需要管理员权限才能将此文件粘贴到此处
13) 将‘ca-cert-bundle.crt’重命名为‘ca-cert-bundle.old.crt’
a. 如果出现提示,请提供管理员权限
14) 将‘ca-cert-bundle.new.crt’重命名为‘ca-cert-bundle.crt’
a. 如果出现提示,请提供管理员权限
15) 重试从 git 存储库克隆或恢复 Bower 依赖项。任务现在应该成功完成!
最简单的方法之一是取消设置代理。
命令: git config --global --unset http.proxy
这有助于告诉 git 不要使用全局选项执行证书验证
git config --global http.sslVerify false
但这不是建议的,请考虑使用证书
git config http.sslCAInfo
git config --global http.sslBackend "openssl"
git config --global http.sslCAInfo "<git_cert>"
如果要完全禁用 SSL 验证,请打开 Git Bash 并运行命令。
git config --global http.sslVerify false
注意:此解决方案会让您遭受中间人攻击等攻击。因此请尽快再次开启验证:
git config --global http.sslVerify true
我能够解决这个问题,不是通过解决证书问题,而是通过普通的 http 连接。对于我的用例来说,这是安全的,但可能不适合你的用例。