使用http://rubygems.org替代https时使用“证书验证失败”

问题描述:

当我使用https:/rubygems.org时,我用来获取证书验证错误。使用http://rubygems.org替代https时使用“证书验证失败”

建议解决方法:删除“s”(所以我最终使用http而不是https)。它的工作了一段时间,但是从今天开始一个新的Rails应用程序rails new 'filename'我得到了同样的证书验证错误后:

Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://rubygems.org/gems/mime-types-data-3.2016.0521.gem) An error occurred while installing mime-types-data (3.2016.0521), and Bundler cannot continue. Make sure that gem install mime-types-data -v '3.2016.0521' succeeds before bundling.

我输入gem sources才发现https://rubygems.org甚至不存在。

$ gem sources 
*** CURRENT SOURCES *** 

http://rubygems.org 

我去Gemfile中,我发现

source 'https://rubygems.org' 

可能是什么问题呢?

+0

'HTTP新的证书: // ruby​​gems.org'重定向到https:// ruby​​gems.org',这样你就会陷入原来的问题。 –

+0

我刚刚检查过,至少,只要您信任根证书,rubygems.org发送的证书链看起来就不错。根证书是广泛可信的'/ C = BE/O = GlobalSign nv-sa/OU =根CA/CN = GlobalSign根CA'。 – rlandster

一定要更新证书,http://guides.rubygems.org/ssl-certificate-update/

然后寻找默认的证书文件

ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE' that outputs "/usr/local/etc/openssl/cert.pem" 

然后改名,将使用您下载

mv /usr/local/etc/openssl/cert.pem /usr/local/etc/openssl/cert.pem.old