LoginSignup
10
9

More than 5 years have passed since last update.

RubyInstaller for Windowsでのgem installでSSL_connectエラーになる場合

Posted at

結論としては、以下の記事と一緒。
Gem - RubyでHTTPS接続時にSSL証明書のエラーがでる。 - Qiita

でも、Windowsの場合はどこから新しい証明書ファイルをダウンロードすればよいかわからなかった。

なお、一次情報源はここ Workaround RubyGems' SSL errors on Ruby for Windows (RubyInstaller)

環境

  • Windows7 64bit
  • RubyInstaller for Windows 2.0.0-p481 ←古いのが原因

状況

次のようなエラーメッセージが表示されました。

$ gem i berkshelf
ERROR:  Could not find a valid gem 'berkshelf' (>= 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://rubygems.org/latest_specs.4.8.gz)

原因

SSL証明書の有効期限切れ

解決方法① ~有効な鍵を追加する~

RubyInstallerの最新版7zipアーカイブに含まれる、SSL証明書ファイルをコピーする

$ 7zip ruby-2.1.5-x64-mingw32.7z
$ cp ruby-2.1.5-x64-mingw32\lib\ruby\2.1.0\rubygems\ssl_certs\* ruby-2.0.0-x64-mingw32\lib\ruby\2.0.0\rubygems\ssl_certs

もしくは、特定の証明書だけダウンロードして保存する

cd ruby-2.0.0-x64-mingw32\lib\ruby\2.0.0\rubygems\ssl_certs
curl -O https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/AddTrustExternalCARoot-2048.pem

解決方法② ~rubygemsをupgradeする~

ruygemsを自動でアップグレードするgem(ruby-gems-update.gem)をインストールしなければならなかったりとめんどくさい。

# rubygems-update-1.8.30.gemをダウンロードしておく。
$ gem install --local C:\rubygems-update-1.8.30.gem
$ update_rubygems --no-ri --no-rdoc
$ gem uninstall rubygems-update -x

解決方法③ ~新しいRubyを入れる~

RubyInstaller for Windowsの最新版をダウンロードしてインストールする。

10
9
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9