windows下 Ruby使用国内https源时出现的ssl报错的解决办法

虽然不建议在windows环境下构建ruby,但是rubyinstaller必然有它存在的意义。在使用ruby时,最令人头疼的无疑是官方源被墙的问题,令人欣慰的是,Ruby-china的出现,为我们提供了免费实时的ruby源,在此对Ruby-china提出万分的感谢。

我们可以用https://gems.ruby-china.org/ 来替换官方的ruby源,命令如下图所示:

但是在windows下使用ruby-china源的时候,会出现如下错误:

Ruby-china给出的解决方案是,使用http://协议替换https://即可解决问题。

但是,这并不是最好的解决办法,我也是被这个问题困扰了一段时间,于是决定找出解决方案并分享给大家。在网上可以见到的最常用的办法是下载cacert.pem (https://curl.haxx.se/ca/cacert.pem),放到指定文件夹(自己决定,并无强制要求),并在环境变量中添加变量SSL_CERT_FILE并将其值指定到cacert.pem文件。这种方式确实可以解决问题,但是好多评论回复此方式无效,其中原因有两个:

1.下载到cacert.pem文件到本地后,cacert.pem被系统锁定,需要查看其属性进行解锁,有点类似于chm文件的解锁。

2.通过Ctrl+s保存方式下载cacert.pem到本地后,浏览器在其内容首位自动添加了一些HTML内容,导致pem文件解析错误,把这些内容去掉即可解决问题,如下图:

除了在环境变量中添加变量这种方式以外,还有一种更简便的方法,同样,下载cacert.pem文件,在C:\Ruby23\lib\ruby\site_ruby\2.3.0\rubygems\ssl_certs\中创建新的文件夹并命名为“gems.ruby-china.org”,最后把cacert.pem文件放入到该文件夹下,问题即可得到解决:

相关解答地址https://github.com/ruby-china/rubygems-mirror/issues/5


本文中对相关问题的解决办法均采集于网络,如有侵权请告知:chunjuwang@163.com;

未经本人允许,谢绝转载。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值