You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

GitHub Desktop访问仓库报错:schannel无法打开CA文件

解决GitHub Desktop无法访问仓库的SSL证书错误

先把你遇到的完整错误信息贴出来,方便对照:

fatal: unable to access 'https://github.com/Repository_name': schannel: failed to open CA file 'C:/Users/Username/AppData/Local/GitHubDesktop/app-1.2.1/resources/app/git/mingw64/ssl/certs/ca-bundle.crt': No such process

你说的场景我太熟了:GitHub Desktop突然罢工,不管是fetch、pull、push还是clone,操作任何仓库都抛这个错,但换bash执行一模一样的命令却完全正常。

为啥会这样?

核心原因是GitHub Desktop自带了一套独立的Git环境,报错里的路径就是它自带Git的CA证书存放位置。要么是这个路径里的ca-bundle.crt文件丢了,要么是GitHub Desktop更新后,版本文件夹(比如app-1.2.1)已经变了,但配置里还在用旧路径,导致找不到文件。而你用bash的时候,调用的是系统里单独安装的Git,用的是系统的证书配置,所以完全不受影响。

具体解决办法,按简单程度排序:

  • 方案1:直接重装GitHub Desktop
    这是最省心的办法,卸载当前版本后重新下载最新版安装。重装会自动修复所有缺失的文件和路径配置,大概率一次解决问题。

  • 方案2:手动修正证书路径

    1. 先去C:/Users/Username/AppData/Local/GitHubDesktop/目录下,看看最新的app-xxx文件夹是什么(比如现在可能是app-3.3.2,而不是报错里的app-1.2.1)。
    2. 找到GitHub Desktop自带Git的配置文件,要么是在它的mingw64/etc/gitconfig里,要么是你用户目录下的.gitconfig文件。
    3. 找到http.sslCAInfo这一行,把路径改成最新的ca-bundle.crt位置,比如:
      [http]
          sslCAInfo = C:/Users/Username/AppData/Local/GitHubDesktop/app-3.3.2/resources/app/git/mingw64/ssl/certs/ca-bundle.crt
      
    4. 保存配置后重启GitHub Desktop,再试试操作仓库。
  • 方案3:补全缺失的证书文件
    如果是ca-bundle.crt文件丢了,你可以从系统里独立安装的Git目录里复制一份过来(比如系统Git的mingw64/ssl/certs/ca-bundle.crt),放到报错里指定的路径,或者最新版本文件夹对应的证书目录里。

内容的提问来源于stack exchange,提问作者VersAtile

火山引擎 最新活动