我正在尝试做 Michael Hartl 教程。当我尝试在我的 gemset 中安装 rails 3.2.14 时,出现以下问题:
$ gem install rails -v 3.2.14 错误:找不到有效的 gem ‘rails’ (= 3.2.14),原因如下: 无法从https://rubygems.org/下载数据- SSL_connect 返回=1 errno=0 state=SSLv3 读取服务器证书 B:证书验证失败(https://s3.amazonaws.com/production.s3.rubygems.org /specs.4.8.gz )
$ gem install rails -v 3.2.14
错误:找不到有效的 gem ‘rails’ (= 3.2.14),原因如下:
无法从https://rubygems.org/下载数据- SSL_connect 返回=1 errno=0 state=SSLv3 读取服务器证书 B:证书验证失败(https://s3.amazonaws.com/production.s3.rubygems.org /specs.4.8.gz )
在谷歌搜索之后,我发现我可以为 rubygems 使用非 SSL 源,所以我运行:
sudo gem sources -a http://rubygems.org
然后,当我再次尝试安装rails时,它成功了。但是,我仍然遇到上述问题,但作为警告:
警告:无法从“ https://rubygems.org/ ”中提取数据:SSL_connect 返回=1 errno=0 state=SSLv3 读取服务器证书B:证书验证失败(https://s3.amazonaws.com/production.s3 .rubygems.org/specs.4.8.gz )
如何完全删除此警告/错误?
我正在使用以下内容:
确保使用最新的 rvm:
rvm get stable
然后你可以做两件事:
rb rvm osx-ssl-certs update all
rb rvm rubygems latest
查找证书路径:
cert_file=$(ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE')
生成证书:
security find-certificate -a -p /Library/Keychains/System.keychain > "$cert_file" security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> "$cert_file"
整个代码:https ://github.com/wayneeseguin/rvm/blob/master/scripts/functions/osx-ssl-certs
确保更新包ca-certificates。(在旧系统上它可能不可用 - 不要使用不再接收安全更新的旧系统)
ca-certificates