将项目从 github 克隆到 RStudio 时出现错误消息“无法获取本地颁发者证书”

问题描述 投票:0回答:7

我试图从 RStudio 克隆 github 的存储库。我已将 git 配置为版本控制可执行文件。

我收到此错误消息:

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

我必须做什么?

谢谢

git github ssl-certificate clone rstudio
7个回答
11
投票

使用以下步骤:

  1. 前往 github 站点“www.github.com”

  2. 单击地址栏附近的锁定图标“查看站点信息”。

  3. 点击证书选项(确保其显示有效)

  4. 转到证书路径选项卡,双击证书路径的根图标(证书)

  5. 转到详细信息选项卡,然后单击复制到文件按钮

  6. 指定完整路径和文件名,无论您想要将其保存为什么(例如。

    D:\gitCert.cer

  7. 打开 git bash 并逐步执行以下命令,

    $ git config http.sslCAInfo
    
    $ git config --global http.sslBackend "openssl"
    
    $ git config --global http.sslCAInfo "D:\gitCert.cer"
    
  8. 尝试通过推送更改或克隆一些存储库来连接到 github 服务器。

    $ git push -u origin master
    

7
投票

我遇到了同样的错误消息,https://github.com/desktop/desktop/issues/9293的线程让我尝试了命令

git config --global http.sslbackend schannel
解决了问题。


4
投票

您当前是否通过公司网络进行连接?已知某些防火墙设置会导致问题。

但首先要获得快速解决方案,请尝试在命令提示符中输入以下内容

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 依赖项。任务现在应该成功完成!


0
投票

最简单的方法之一是取消设置代理。

命令: git config --global --unset http.proxy


0
投票

这有助于告诉 git 不要使用全局选项执行证书验证

git config --global http.sslVerify false

但这不是建议的,请考虑使用证书

 git config http.sslCAInfo
 git config --global http.sslBackend "openssl"
 git config --global http.sslCAInfo "<git_cert>"

0
投票

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

git config --global http.sslVerify false

注意:此解决方案会让您遭受中间人攻击等攻击。因此请尽快再次开启验证:

git config --global http.sslVerify true

0
投票

我能够解决这个问题,不是通过解决证书问题,而是通过普通的 http 连接。对于我的用例来说,这是安全的,但可能不适合你的用例。

© www.soinside.com 2019 - 2024. All rights reserved.