安装gem时SSL证书验证失败

时间:2015-03-31 17:18:07

标签: ruby-on-rails ruby ssl

我在Windows上设置了Rails项目和数据库,但缺少一些宝石。尝试安装它们时,我收到以下错误:

    Following gems were not installed:
    bundler:  Could not find a valid gem 'bundler' (>= 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/specs.4.8.gz)

我试过

  

https://gist.github.com/luislavena/f064211759ee0f806c88

  

SSL Error When installing rubygems, Unable to pull data from 'https://rubygems.org/

但不是这个有效。 有什么想法吗?

2 个答案:

答案 0 :(得分:1)

作为临时解决方法,您只需将gemfile中的source 'https://rubygems.org'更改为source http://rubygems.org即可。然后运行bundle

之前我遇到过完全相同的问题,之后我就可以安装我的宝石了。

要获得更好的解决方案,请运行gem update --system

答案 1 :(得分:0)

对于安装了PowerShell的Windows

安装Windows PowerShell

将此1行代码粘贴到命令控制台中:(WIN + R,cmd)

powershell -Command "& {$fname='cacert.pem'; $outpath=\"$($(Get-ChildItem Env:USERPROFILE).Value)/$fname\"; Invoke-WebRequest http://curl.haxx.se/ca/$fname -OutFile \"$outpath\"; [Environment]::SetEnvironmentVariable('SSL_CERT_FILE', \"$outpath\", 'User')}"

脚本可以:

  1. 下载http://curl.haxx.se/ca/cacert.pem

  2. 将其另存为%USERPROFILE%/cacert.pem ( C:\Users\__you__\cacert.pem)

  3. 将当前用户SSL_CERT_FILE的持久性环境变量设置为%USERPROFILE%/cacert.pem

  4. 此后尝试安装gem