我正在运行Ruby 2.2.5和RubyGems 2.2.3
我是编程新手,并且一直在学习RubyGems以及如何更新它们。每当我尝试从Rubygems服务器做任何事情时,我都会收到此错误:
ERROR: Could not find a valid gem 'rspec' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/latest_specs.4.8.gz)
我注意到很多人都遇到过这个问题,并通过启用SSL验证来解决这个问题。
require 'openssl'
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
这种解决方法有多危险,我该如何重新开启呢?
答案 0 :(得分:1)
使用SSL的关键在于您知道代码来自受信任的来源,并且没有人试图破解您的连接并向您发送恶意代码。虽然有人可能不会尝试对你这么做,但为什么要冒风险呢?
有许多方法可以更新证书以使rubygems正常工作。快速谷歌搜索给了我这两个链接:
对于开发中的一些内容,我会说关闭SSL进行测试是件好事,但对于rubygems,你实际上是在下载代码,而这些代码将会在你的计算机上运行,所以它会让我感到不舒服,特别是当它不应该太难修复时。
答案 1 :(得分:0)
根据Josh的回答,我已经尝试过使用以下说明: https://gist.github.com/luislavena/f064211759ee0f806c88
但他们提供的新信托证书的链接已损坏。然而Josh的第一个链接让我在Windows上查找Ruby的证书更新,最终我找到了这个链接
How to solve "certificate verify failed" on Windows?
这个解决了我的问题。谢谢你们
编辑:唯一的区别是因为我没有在rails上安装ruby我在c:\ ruby22 \ cacert.pem下保存了新证书
此外,我之前运行的是rubygems 2.4.something,但根据https://gist.github.com/luislavena/f064211759ee0f806c88上的说明降级为2.2.3
我想知道新证书是否适用于2.4版本的rubygems。