使用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'
可能是什么问题呢?
答
一定要更新证书,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
'HTTP新的证书: // rubygems.org'重定向到https:// rubygems.org',这样你就会陷入原来的问题。 –
我刚刚检查过,至少,只要您信任根证书,rubygems.org发送的证书链看起来就不错。根证书是广泛可信的'/ C = BE/O = GlobalSign nv-sa/OU =根CA/CN = GlobalSign根CA'。 – rlandster