You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby on Rails Bundler与GitHub SSL协议版本错误技术求助

解决Bundle Install/Update时的SSL协议版本错误

嘿,这个问题我帮不少维护老Rails项目的开发者解决过!你碰到的fatal: unable to access 'https://github.com/nomaddc/country_select.git/': error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version错误,核心原因是你的Ruby 2.3.3环境自带的OpenSSL版本太老旧,不支持GitHub现在要求的TLS 1.2+安全协议——GitHub早在几年前就彻底停用了TLS 1.0和1.1,旧版本的OpenSSL根本连不上仓库。

下面给你几个可行的解决方案,按从易到难排序:

方案1:换用SSH地址替代HTTPS地址(最快应急)

这个方法不用升级任何环境,直接修改Gemfile的仓库地址就行:

  • 打开项目根目录的Gemfile,找到这行:
    gem 'country_select', git: 'https://github.com/nomaddc/country_select.git'
    
  • 把HTTPS地址替换成SSH格式:
    gem 'country_select', git: 'git@github.com:nomaddc/country_select.git'
    
  • 保存后重新运行bundle install或bundle update

⚠️ 前提:你已经在本地生成过SSH密钥,并把公钥添加到了你的GitHub账号里。如果还没配,先在命令行执行:

ssh-keygen -t ed25519 -C "你的GitHub绑定邮箱"

然后把本地~/.ssh/id_ed25519.pub(Windows是C:\Users\你的用户名\.ssh\id_ed25519.pub)里的内容复制到GitHub账号的「SSH and GPG keys」设置页面里。

方案2:升级Ruby环境(最彻底的长期解决方案)

Ruby 2.3.x已经是停止维护多年的古董版本了,不仅有SSL协议问题,还有一大堆未修复的安全漏洞。如果你的项目还打算长期维护,建议升级到至少Ruby 2.6+(优先选官方支持的稳定版本,比如3.0.x或3.1.x):

  • 如果是Mac/Linux,推荐用rbenv或rvm来管理Ruby版本:
    1. 安装rbenv(比如用Homebrew:brew install rbenv)
    2. 安装目标Ruby版本:rbenv install 3.0.6
    3. 给当前项目设置这个版本:rbenv local 3.0.6
    4. 重新安装bundler:gem install bundler
    5. 最后运行bundle install
  • 如果是Windows,直接下载最新版的RubyInstaller(记得选带Devkit的版本),安装后替换掉旧的Ruby 2.3.3环境即可。

方案3:强制Git使用TLS 1.2(临时应急,不一定适用于所有旧环境)

如果暂时不想改Gemfile也不想升级Ruby,可以试试强制Git使用TLS 1.2协议:

  • 在命令行执行:
    git config --global http.sslVersion TLSv1.2
    
  • 然后再运行bundle install或bundle update

⚠️ 注意:如果你的Git版本也非常老旧,可能不支持这个配置,这时候还是得回到前两个方案。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:14:51