“gem install foundation”中的证书验证失败

时间:2014-12-19 20:13:02

标签: ruby gem installation zurb-foundation

安装nodejs,ruby和git plus bower后尝试安装Foundation。

我一直收到以下错误,我不知道如何修复它:

无法找到有效的宝石'基础'(> = 0),原因如下: 无法从https://rubygems.org/下载数据 - SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书验证失败(https://api.rubygems.org/latest_specs.4.8.gz

有什么想法吗?

7 个答案:

答案 0 :(得分:39)

试试这个(快速但不安全)

gem sources --remove https://rubygems.org/
gem sources -a http://rubygems.org/

注意:通过HTTP下载将是未加密的

答案 1 :(得分:16)

如果你正在使用 RVM (强烈推荐),你可以运行

rvm osx-ssl-certs update all

否则,您可以按照http://guides.rubygems.org/ssl-certificate-update/ 上的说明进行操作,虽然update_rubygems补丁对我没有任何作用,但手动安装.pem文件可能会有效。

如果没有RVM,链接表明您可以尝试...

gem install bundler

gem update --system

答案 2 :(得分:12)

看看这个问题,详细解释了这个问题:

https://gist.github.com/luislavena/f064211759ee0f806c88

答案 3 :(得分:8)

请阅读背景信息并按照the official guide from rubygems.org了解如何解决此问题。

<强> TL; DR:

  1. 下载rubygems-update-2.6.7.gem(新版本发布时链接将过时)
  2. gem install --local $USER\Downloads\rubygems-update-2.6.7.gem
    (Try %userprofile% instead of $USER if using Windows)
  3. update_rubygems --no-ri --no-rdoc
  4. gem uninstall rubygems-update -x

答案 4 :(得分:4)

取自reference given by Sébastien

基本上,您下载latest certificate并将其放入$RUBYHOME/lib/ruby/2.1.0/rubygems/ssl_certs。 (请注意,您可能安装了不同版本的rubygems而不是2.1.0,因此请适当调整路径。)

下次调用 gem 命令时,Rubygems应该使用证书。

答案 5 :(得分:1)

答案 6 :(得分:1)

在linux或docker容器中,以下命令将解决问题:

curl https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem > $(ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE')

以上命令将获取rubygems在连接到其网站时所期望的CA证书,并将其安装在ruby期望证书生效的位置。

感谢Gabe Evans帮助blog post,详细说明了在一行代码中解决问题的智能方法。

我修改了Gabe的解决方案,以使用rubygems website上指定的CA证书。有关此问题产生原因的进一步讨论可以在那里找到。

此解决方案的好处是它使用https来获取rubygems的更新证书。由于它从github获取此证书,因此即使使用SHA1证书也可以使用。它也很方便,因为它使用ruby,通过拉入openssl库将cert放置在需要的位置。