Windows環境でgemがSSLエラー 2016

  • 66
    いいね
  • 2
    コメント

現象

最近、Windows環境でgemを使うとこんなエラーが出るようになった。

C:\>gem install capybara
ERROR:  Could not find a valid gem 'capybara' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - SSL_connect retur
ned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (
https://api.rubygems.org/specs.4.8.gz)

SSL証明書の検証に失敗しました、というHTTPS通信のエラー。

環境

  • Windows 7 or 10 どちらでも発生を確認。
  • インストールはRubyInstallerを使用。Ruby 2.3.1
  • 発生時点でのgemは2.5.1

解決方法

Rubygemsを最新バージョンにする。

アップデートはgemで取れるが、上で示した通りhttpsは通らないので、httpを指定して取る。

C:\>gem -v
2.5.1
C:\>gem install rubygems-update --source http://rubygems.org/
# 出力省略
C:\>update_rubygems
# 出力省略
C:\>gem -v
2.6.7

この状態でgem installすると通った。

補足:証明書について

https://rubygems.org の証明書を見てみると、有効期間が2016/09/28からだった。最近更新されたっぽいので、これが原因だった可能性が高い。

rubygems_cert.png

Rubygemsのリポジトリも覗いてみると、今回アップデートした前と後で、含まれている証明書が違う。

あと、過去にも似たようなことが起こっていたらしい。

http://qiita.com/shimoju/items/394818b4989b94680aaf

2017/02/06 追記

ありがたいことに投稿から数か月経過してもたまに「いいね」を押してくださる方がいるようなので、今更ながら追記。公式ガイドでは、ブラウザ等でgemファイルを手動ダウンロードする方法が案内されています。そちらのほうがHTTPSを使うため、より安全です。

リンクされているrubygems-update-2.6.7.gemは現在では古くなっているバージョンのため、特に理由がなければ最新バージョンのgemファイルをダウンロードするのが良いと思います。