Gem Windows 环境添加 Ruby China Gems 源的 SSL 异常问题解决记录

haibor · 发布于 2017年08月15日 · 最后由 huazu5566 回复于 2017年09月19日 · 1770 次阅读
96
本帖已被设为精华帖!

#ruby 添加gem源的ssl异常问题解决记录

异常SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

问题现象:

gem source --add 添加国内源时,报ssl certificate 的异常,使用http问题也一样:

  C:\WINDOWS\system32>gem sources --add  http://gems.ruby-china.org

Error fetching http://gems.ruby-china.org:
        SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://upyun.gems.ruby-china.org/specs.4.8.gz)

 C:\WINDOWS\system32>gem sources --add  https://gems.ruby-china.org

 Error fetching https://gems.ruby-china.org:
        SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://gems.ruby-china.org/specs.4.8.gz)

笔者环境说明

Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation。保留所有权利。

C:\Users\haibor>ruby -v
ruby 2.1.7p400 (2015-08-18 revision 51632) [x64-mingw32]

C:\Users\haibor>rails -v
Rails 3.0.3

C:\Users\haibor>gem --version
2.6.2

问题定位及解决过程

1、升级gem的版本,及下载最新的证书。
官方地址:http://guides.rubygems.org/ssl-certificate-update/

*> C:\WINDOWS\system32>gem update --system *

Updating rubygems-update Fetching: rubygems-update-2.6.12.gem (100%) Successfully installed rubygems-update-2.6.12 Parsing documentation for rubygems-update-2.6.12 Installing ri documentation for rubygems-update-2.6.12 Installing darkfish documentation for rubygems-update-2.6.12 Done installing documentation for rubygems-update after 45 seconds Parsing documentation for rubygems-update-2.6.12 Done installing documentation for rubygems-update after 0 seconds Installing RubyGems 2.6.12 RubyGems 2.6.12 installed Parsing documentation for rubygems-2.6.12 Installing ri documentation for rubygems-2.6.12 RubyGems system software updated

> C:\WINDOWS\system32>gem --version

2.6.12 (gem升级后版本)

说明: 用该新版本,添加gem源错误以旧!不过会多出更加详细的错误说明信息,这些信息对解决问题并没有什么帮助! 继续: C:\WINDOWS\system32>gem sources --add http://gems.ruby-china.org

ERROR: SSL verification error at depth 1: unable to get local issuer certificate (20) ERROR: You must add /O=Digital Signature Trust Co./CN=DST Root CA X3 to your local trusted store Error fetching http://gems.ruby-china.org: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://upyun.gems.ruby-china.org/specs.4.8.gz)

C:\WINDOWS\system32>gem sources --add https://gems.ruby-china.org

ERROR: SSL verification error at depth 1: unable to get local issuer certificate (20) ERROR: You must add /O=Digital Signature Trust Co./CN=DST Root CA X3 to your local trusted store Error fetching https://gems.ruby-china.org: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://gems.ruby-china.org/specs.4.8.gz)

2、下载证书

https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem

定位ruby gem 证书存放的位置:

> C:\WINDOWS\system32>gem which rubygems

C:/Ruby21-x64/lib/ruby/site_ruby/2.1.0/rubygems.rb

将证书GlobalSignRootCA.pem文件,拷入ruby库中目录中:

C:\Ruby21-x64\lib\ruby\site_ruby\2.1.0\rubygems\ssl_certs

说明:运行添加gem源 gem sources --add http://gems.ruby-china.org 错误依旧!一点变化木有! 继续:

增加新的pem证书,解决问题

找到如下stackoverflow多方大神的解决方案,最终也是问题得到解决: https://stackoverflow.com/questions/10246023/bundle-install-fails-with-ssl-certificate-verification-error

下载新证书: http://curl.haxx.se/ca/cacert.pem

配置环境变量: SSL_CERT_FILE 值为刚下载证书的存放位置: C:\Ruby21-x64\lib\ruby\site_ruby\2.1.0\rubygems\ssl_certs\cacert.pem

打开新的cmd窗口

添加镜像源成功,速度不错!

其它说明:

1、gem源的配置文件: ruby gem 源的配置文件在:

可以直接修改该文件,即可增加删除gem源

2、rubygem官网的GlobalSignRootCA.pem 配置到环境变量的文件路径里面,并没有解决问题。还是http://curl.haxx.se/ca/cacert.pempem文件,解决了问题。

3、gem的版本和ruby版本? 在我的一台linux环境的主机上,gem版本2.4.8,运行 gem sources --add http://gems.ruby-china.org 都没有什么问题。 但该机器的ruby版本为2.2.5相对我windows主机的ruby版本2.1.7p400要高一些。

说明: 可以试一下升级一下windows 环境 ruby版本,能否解决该ssl问题。 本人暂时未试。

4、其它说明:不同的环境导致问题的原因不同,有些情况或许直接用官网http://guides.rubygems.org/ssl-certificate-update/的方式就可以解决了。

power by haibor@qq.com

共收到 5 条回复
De6df3 huacnlee 将本帖设为了精华贴 08月16日 09:37
2c0c2d

这年头还有用win开发ruby的

7809
2c0c2distrwei 回复

我赞你是因为你的头像

96

看到了windows系统,大家估计都直接忽略贴子内容了

1107 jasl 添加 Gem 源遇到问题 中提及了此贴 08月28日 01:47
1ba460

多年前我就踩过这个坑,没想到现在都没解决

A7359e

我直接一条:gem sources --add http://gems.ruby-china.org 就成功了,还有这情况吗?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册