我曾经在使用 https://rubygems.org 时遇到证书验证错误。
建议了一个解决方法:删除“s”(所以我最终使用 http 而不是 https)。它工作了一段时间,但今天在启动新的 Rails 应用程序后
rails new 'filename'
我得到了相同的证书验证错误:
Gem::RemoteFetcher::FetchError:SSL_connect 返回=1 errno=0 状态=SSLv3 读取 服务器证书 B:证书验证失败 (https://rubygems.org/gems/mime-types-data-3.2016.0521.gem) 安装 mime-types-data (3.2016.0521) 和 Bundler 时出错 无法继续。 确保
之前成功 捆绑。gem install mime-types-data -v '3.2016.0521'
我输入
gem sources
却发现 https://rubygems.org 根本不存在。
$ gem sources
*** CURRENT SOURCES ***
http://rubygems.org
我查看 gemfile,发现
source 'https://rubygems.org'
可能是什么问题?
如果有人在使用 ARMV7 的 Ubuntu 20.04 上仍然遇到此问题,请确保:
ca-certificates
已安装update-ca-certificates
您可能还需要在运行之前安装 GlobalSign 证书
update-ca-certificates
:
curl -sL -o /usr/local/share/ca-certificates/GlobalSignRootCA_R3.crt https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem
这似乎解决了我的问题。
请务必更新证书,http://guides.rubygems.org/ssl-certificate-update/
然后查找默认证书文件
ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE'
输出“/usr/local/etc/openssl/cert.pem”
然后重命名,这将使用您下载的新证书
mv /usr/local/etc/openssl/cert.pem /usr/local/etc/openssl/cert.pem.old