我在做迈克尔·哈特尔的教程。当我试图在我的gemset中安装rails 3.2.14时,我得到以下问题:

$ gem install rails -v 3.2.14 错误:无法找到一个有效的宝石'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 returned=1 errno=0 state=SSLv3读取服务器证书B:证书验证失败(https://s3.amazonaws.com/production.s3.rubygems.org/specs.4.8.gz)

如何完全删除此警告/错误?

我正在使用以下:

rvm 1.22.15 Ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.3.0] OSX 10.8.5


当前回答

Try

gem update --system

希望这能解决问题。

其他回答

Try

gem update --system

希望这能解决问题。

可以使用HTTP而不是HTTPS自动下载gems的方法/一行程序:

printf -- '---\n:sources:\n- http://rubygems.org\n' | tee ~/.gemrc

尝试使用宝石的源网站,如rubygems.org。使用http而不是https。这种方法不涉及任何工作,如安装证书和所有的。

的例子,

gem install typhoeus --source http://rubygems.org

这是可行的,但有一个警告。

gem已经安装,但是文档没有安装,因为存在证书错误。这是我得到的错误

Parsing documentation for typhoeus-0.7.0 WARNING: Unable to pull 
data from 'https://rubygems.org/': SSL_connect returned=1 errno=0 
state=SSLv3 read server certificate B: certificate verify failed 
(https://rubygems.org/latest_specs.4.8.gz)

下载cacert。来自http://curl.haxx.se/ca/cacert.pem的Pem文件。将文件保存到C:\RailsInstaller\cacert.pem。

现在,通过设置SSL_CERT_FILE,让ruby知道您的证书颁发机构包。要在当前命令提示符会话中设置此选项,输入:

set SSL_CERT_FILE = C: \ RailsInstaller \ cacert . pem

确保系统时钟正确

今天我在VirtualBox上运行的Ubuntu虚拟机上就发生了这样的错误。我尝试了上面列出的大多数解决方案,然后我注意到我已经从一个非常古老的暂停状态恢复过来,我的生物钟偏离了许多天。

更新时钟立即解决了我的问题。下面是我在我的例子中使用的命令:

Sudo service NTP stop && Sudo ntpdate pool.ntp.org && Sudo service NTP start