【问题标题】:Can't access RubyGems - possibly due to SSL? [duplicate]无法访问 RubyGems - 可能是由于 SSL? [复制]
【发布时间】:2014-12-08 18:00:10
【问题描述】:

这里是新的 Ruby on Rails 开发人员,只是尝试安装和设置。

我正在关注this guide 如何开始。但是,当我进入 3.2 创建博客应用程序时,我在运行 rails new blog 时遇到了问题。当我尝试这样做时,我收到一个错误,上面写着

安装 rake 10.4.2 时出错,Bundler 无法继续。在捆绑之前确保 'gem install rake -v '10.4.2'' 成功。

所以,当我尝试运行该命令时,我得到了这个错误:

错误:找不到有效的 gem 'rake':无法从 https://rubygems.org/ 下载数据 - SSL_connect 返回=1 errno=0 state=SSLv3 读取服务器证书 B:证书验证失败

谷歌搜索后,我找到了this guide。在诊断部分,我尝试运行openssl version,但没有成功。我安装了 OpenSSL 并将其添加到我的路径中。但是,当我尝试获取任何宝石时,我仍然会遇到相同的错误。我也无法 ping ruby​​gems.org - 没有任何回复。

我使用的是 Windows 7、Rails 4.1.8、Ruby 2.0.0p598、RubyGems 2.0.14 和 OpenSSL 1.01j。任何帮助将不胜感激!

【问题讨论】:

    标签: ruby-on-rails ruby ssl rubygems


    【解决方案1】:

    这是一个快速的解决方案:

    转到您的 gem 文件并进行更改

    source 'https://rubygems.org' 
    

    source 'http://rubygems.org' #remove the 's' 
    

    在 StackOverflow 上查看此 similar question 以获得更多解决方案和对错误的见解:)

    编辑:

    根据@Anthony 在下面的 cmets 中的输入,这是一个更持久的解决方案:

    下载:AddTrustExternalCARoot-2048.pem.(注意:文件必须以 .pem 作为扩展名。Chrome 等浏览器会尝试将其保存为纯文本文件。确保在下载后将文件名更改为 .pem。 )

    现在在命令提示符下运行以下命令:

    C:\>gem which rubygems
    

    Thiw 将为您提供需要放置上述.pem 文件的路径。在路径指向的目录内导航。在里面找到ssl_certs目录,把我们上一步得到的.pem文件复制进去。

    这样就可以了!

    【讨论】:

    • 这会起作用,但 http 对 ruby​​gems 的调用已被弃用,因此最终会中断。
    • @Anthony:感谢您提供的信息!我没有意识到这一点!根据您的输入更新答案! :)
    • 感谢您的回复。我无法将其保存为 .pem - 正如您所说,Chrome 将其下载为 .txt。如何强制它或将其转换为正确的 pem 扩展?
    • 执行此操作:首先在新选项卡中打开此下载链接。转到需要存储此文件的目录。然后在该目录中创建一个文本文件,并将新选项卡中的内容复制到该文本文件中。将此文本文件重命名为 pem 文件的名称 (AddTrustExternalCARoot-2048.pem) 并删除末尾的 .txt 扩展名。
    • AddTrustExternalCARoot-2048.pem:上面提到的链接坏了..有人知道正确的吗?
    【解决方案2】:

    这是特定于 windows 权限问题,您可以阅读问题的整个范围here

    对于 tl;dr -

    第 1 步:获取新的信任证书

    下载:AddTrustExternalCARoot-2048.pem

    第 2 步:在您的安装中找到 RubyGems 证书目录

    C:\>gem which rubygems
    C:/Ruby21/lib/ruby/2.1.0/rubygems.rb
    

    我们要打开上面列出的路径:

    C:\>start C:\Ruby21\lib\ruby\2.1.0\rubygems
    

    第 3 步:复制新的信任证书

    现在,找到ssl_certs目录,把我们第一步得到的.pem文件复制到里面。

    【讨论】:

    • 您好 Anothony,感谢您的回复。我只能使用此实用程序将文件作为 .pem.der 文件获取:sslshopper.com/ssl-converter.html,但它似乎仍然无法正常工作,我仍然遇到同样的问题。我需要一个 .pem 文件吗?
    • 它必须保留 .pem 文件扩展名,因此请确保它保持这种状态(例如 windows 可能会尝试重命名它)
    • 这应该是正确的答案。谢谢
    • 链接已损坏。
    猜你喜欢
    • 2018-09-15
    • 1970-01-01
    • 2022-07-29
    • 2013-07-12
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多