【问题标题】:Certificate Verify Failed in "gem install foundation"“gem install foundation”中的证书验证失败
【发布时间】:2015-02-18 19:32:53
【问题描述】:

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

我不断收到以下错误,我不知道如何解决它:

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

有什么想法吗?

【问题讨论】:

标签: ruby gem installation zurb-foundation


【解决方案1】:

看这个,问题解释得很详细:

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

【讨论】:

  • 找不到页面。
【解决方案2】:

取自reference given by Sébastien

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

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

【讨论】:

  • @Metafaniel 你在哪里卡住了?
【解决方案3】:

如果您使用的是 RVM(强烈推荐),您可以运行

rvm osx-ssl-certs update all

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

如果没有 RVM,链接建议您可以尝试...

gem install bundler

gem update --system

【讨论】:

    【解决方案4】:

    【讨论】:

      【解决方案5】:

      请阅读背景信息并关注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

      【讨论】:

      • 非常感谢!它对我有用,而且不像最受好评的答案那么危险。
      • 这很好,这应该是公认的答案,最高评价的答案不应该在生产环境中完成
      【解决方案6】:

      在 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')

      上述命令将获取 ruby​​gems 在连接到其网站时期望的 CA 证书,并将其安装在 ruby​​ 期望证书存在的位置。

      感谢 Gabe Evans 乐于助人的blog post,他详细介绍了用一行代码解决问题的聪明方法。

      我修改了 Gabe 的解决方案以使用 ruby​​gems website 上指定的 CA 证书。可以在此处找到有关为什么会出现此问题的进一步讨论。

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

      【讨论】:

        猜你喜欢
        • 2015-06-05
        • 2013-06-09
        • 2015-02-01
        • 2012-03-15
        • 2018-12-03
        • 2022-01-15
        • 2018-03-15
        • 2015-11-13
        • 2021-11-26
        相关资源
        最近更新 更多