前言
笔者在解决这个问题的过程中,踩下了一系列的坑 同时,笔者发现针对这方面的网络资料也比较少、比较零散 因此写下这篇文章,让大家避开笔者之前踩过的坑,顺利的解决问题 本文解决的问题是:在使用 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,但您需要设置一个 "个人访问" 令牌来代替您的密码。
方案一:不进行证书验证
通过无视风险的方式,强行禁止 ssl 证书验证。(在 git 中输入以下命令即可)
git config --global http.sslVerify false
方案二:进行证书验证
通过为 git 导入对应的 ssl 证书,从而让 git 能够进行证书验证。
打开 Steam++,找到下面的页面,点击 “打开证书文件夹” 在这个文件夹里面,复制 SteamTools.Certificate.cer
文件的路径 打开 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 '...'
这真的是连环坑啊,笔者已经踩过了,并不希望大家再踩一遍,解决办法在上面的 终极方案
里面 至此,分享结束,希望能帮到你!