windows下ruby gem安装或者update出现证书错误解决

windows下的ruby在执行gem 安装新包或者update的时候出现类似如下证书错误:

ERROR: Could not find a valid gem ‘xxxxxx’ (>= 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/xxxxx)

这种情况一般是根证书过期或者无效、文件不存在等原因引起的。

执行
ruby -e "require 'openssl'; puts OpenSSL::X509::DEFAULT_CERT_FILE"
查看系统返回的证书路径,检查文件是否存在,如果存在则用“http://curl.haxx.se/ca/cacert.pem” 这个文件更新之。

如果存在,则可按下面方式解决:
1、下载 http://curl.haxx.se/ca/cacert.pem 保存到硬盘任意位置
2、设置添加系统变量“SSL_CERT_FILE”并指向刚下载好的证书路径。

最后,也有可能是rubygems.org被墙了,可以准备一把梯子,或者把仓库源换成国内的:

gem source -a https://gems.ruby-china.org