由于 Github 证书验证问题而无法连接的错误 (fatal: unable to access ‘...‘ : SSL certificate problem: unable)

前言

  • 笔者在解决这个问题的过程中,踩下了一系列的坑
  • 同时,笔者发现针对这方面的网络资料也比较少、比较零散
  • 因此写下这篇文章,让大家避开笔者之前踩过的坑,顺利的解决问题
  • 本文解决的问题是:在使用 Steam++ (即:Watt Toolkit )加速器 对 Github 进行加速的背景下,所产生的 证书验证 问题
  • 如果你对过程和原理不感兴趣,可直接移步到 解决方案

背景

  • 昨天,笔者真是脑子一抽,突然想用 https 的方式来提交修改好的代码到 github 仓库上
  • 不曾想到,笔者竟然打开了潘多拉魔盒…
  • 在输入了下面的 git 命令后:
git push origin develop
  • 报了一个错误:fatal: unable to access '...' : SSL certificate problem: unable
  • 从错误信息来看,意思是说:连接失败,SSL 证书问题
  • 当笔者看到这个证书问题时,心里感觉不妙啊…
  • 因为笔者之前在学习 https原理的时候,对于那些加密通信、数字签名、数字证书的内容只是快速地浏览了一遍,并没有花太多的时间去认真学习,加上太久没用,基本忘光了…
  • 所以笔者感觉这次的问题,不花点时间,可能有点难排查
  • 果然!当笔者去找这个问题的资料时,不是找到的资料不全,就是过程不清不楚,很多资料无法解决当前这个问题,询问 AI 得到的答案也是不痛不痒
  • 最后没有办法,笔者下定决心,认真的再学一遍 https 原理 ,自己去排查!
  • 最后,凭着所学知识,笔者快速排查了一下自己电脑的CA证书,也没发现什么毛病,真是奇了怪了,到底什么毛病呢?
  • 然后,笔者灵机一动:既然在终端里面使用 https 访问 github 难排查,那为何我不用浏览器呢,同一台电脑的同一个访问方式,github 证书的验证应该是相同的吧?如果我在浏览器查找证书,和终端应该大差不差,说办就办!马上打开浏览器去查!
  • 这不差不知道,一查吓一跳,原来证书无法验证是因为 Steam++ (即:Watt Toolkit ) 证书搞的鬼啊!
  • 在访问 Github 的路上,真的是成也 Steam++ 败也 Steam++(当然,主要原因是笔者自己太菜了【苦笑】)
    在这里插入图片描述
  • 我们可以看到,颁发者是 Steam Tools Certificate(即:Steam 工具证书)
  • 你可以这样理解:这个 github 证书并不是 “纯粹” 的 github 证书,所以我们的电脑无法验证这个证书
  • 知道了这一点,剩下的就好办了
  • 我们只需要把 Steam Tools Certificate 的证书告诉 git,让它在进行证书验证的时候,使用我们告诉它的进行解密
  • 最后 git 就会通过证书验证,从而成功的与 github 进行 https 访问
  • 好啦,过程就是这样,详细的操作教程请到下面的 方案二 进行查看

解决方案

终极方案:使用 ssh 方式进行与 github 连接


  • 下面的 方案一方案二 本质上都是解决了 证书验证问题 ,最后都是通过 https 进行连接
  • https 连接方式 早在 2021 年就已经被官方作出调整,内容大致如下:
自 2021 年 8 月起,Github 已取消对从 Git 命令行使用帐户密码的支持。
您仍然可以使用 HTTPS,但您需要设置一个 "个人访问" 令牌来代替您的密码。

  • 简单来说,如果你和笔者一样,是因为贪图 https 连接方式 的便捷性(直接输入账号密码就能连接,通俗易懂又方便)
  • 现在的话,请你打消你的念头,因为 https 连接方式 被官方做出调整后,它其实已经和 ssh 连接方式 没什么区别了
  • 甚至还不如直接使用 ssh 连接方式
  • 至此,如果你还想折腾 https 的连接方式,可自行上网搜索,或者看这篇文章:https://blog.csdn.net/qq_46941656/article/details/119737804


方案一:不进行证书验证

  • 通过无视风险的方式,强行禁止 ssl 证书验证。(在 git 中输入以下命令即可)
git config --global http.sslVerify false

方案二:进行证书验证

  • 通过为 git 导入对应的 ssl 证书,从而让 git 能够进行证书验证。
  1. 打开 Steam++,找到下面的页面,点击 “打开证书文件夹”
    在这里插入图片描述
  2. 在这个文件夹里面,复制 SteamTools.Certificate.cer 文件的路径
    在这里插入图片描述
  3. 打开 git,输入下面的命令,路径换成你自己的路径就行(这里需要注意,如果你是复制路径的话,请在粘贴路径后,手动将反斜杠 \ 改为下面的双斜杠 //,否则命令将不起作用)
git config --global http.sslCAInfo D://Software//WattToolkit//AppData//Plugins//Accelerator//SteamTools.Certificate.cer

关于方案一和方案二的一些问题

  • 在你使用 方案一 或者 方案二 之后,其实对于 fatal: unable to access ‘...‘ : SSL certificate problem: unable 这个问题就已经解决了
  • 当你使用 https 去连接 github 的时候,你可能会发现又报错了:
    remote: Support for password authentication was removed on August 13, 2021. remote: Please see https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication. fatal: Authentication failed for '...'
  • 这真的是连环坑啊,笔者已经踩过了,并不希望大家再踩一遍,解决办法在上面的 终极方案 里面
  • 至此,分享结束,希望能帮到你!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值