当前位置: 首页 > 知识库问答 >
问题:

无法找到有效的gem:证书验证失败

夹谷英奕
2023-03-14

我正在尝试建立一个到远程服务器的ssh隧道,如下所述:使用Mysql Db从Heroku到远程服务器的ssh

但我只是想下载这些宝石就挂断了。我补充说:

# file: Gemfile
...
gem 'net-ssh-gateway', '~> 1.2.0'

但是,当我执行bundle安装(甚至只是在命令行上执行gem install net ssh)时,我会得到:

ERROR:  Could not find a valid gem 'net-ssh' (>= 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)

根据NetSSH的自述文件(https://github.com/net-ssh/net-ssh),我检查了Ruby的OpenSSL绑定--它们看起来不错:

$ ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
OpenSSL 1.0.1j 15 Oct 2014

我不确定这是否相关,但当我尝试下载时。pem文件用于高安全性的GEM文件下载:

$ curl -O https://raw.github.com/net-ssh/net-ssh/master/gem-public_cert.pem

... 它没有下载。pem文件,访问URL直接导致“未找到”。

其他资料:

$ rake about
About your application's environment
Ruby version              2.1.4-p265 (x86_64-darwin14.0)
RubyGems version          2.2.2
Rack version              1.5
Rails version             4.1.7

所以现在,我被困住了。有人认识到这个问题吗?

共有3个答案

符献
2023-03-14

嘿,每个人都遵循这个链接,这样你就不必每次都手动安装了。

这说明问题来自rubygems对ssl证书的更改。NVM链接最能解释它:p

白禄
2023-03-14

尽管@TheTinMan给出了有用的答案,但我的问题是我没有在OpenSSL可以找到的地方设置证书。

安装rubygems时SSL错误中的以下建议,无法从中提取数据'https://rubygems.org/:

你可以通过改变第一行的gefile来解决这个问题

source 'https://rubygems.org'

到非https表单:

source 'http://rubygems.org'

然后执行常规的捆绑安装。之后,您应该恢复文件的第一行以使用https表单。这通常被认为是一种安全风险。

此外,您还没有真正解决缺乏有效证书的真正问题,如果您的应用程序调用使用OpenSSL(例如net-ssh),您将遇到麻烦。

请参阅安装rubygems时出现的SSL错误,无法从中提取数据'https://rubygems.org/.对于OS X用户,我们要求Ruby告诉我们它在哪里查找证书文件,然后使用security find certificate填充证书文件:

$ cert_file=$(ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE')
$ echo $cert_file
$ html" target="_blank">security find-certificate -a -p /Library/Keychains/System.keychain > "$cert_file"
$ security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> "$cert_file"

在我这样做之后,我能够调用bundle install,没有错误。

汪鸿志
2023-03-14

这对我的情况很有帮助,当我在证书方面遇到问题时:

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

gem update --system

gem sources -r http://rubygems.org
gem sources -a https://rubygems.org
 类似资料: