Help us understand the problem. What is going on with this article?

Windows環境でgemがSSLエラー 2016

More than 3 years have passed since last update.

現象

最近、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ファイルをダウンロードするのが良いと思います。

betrue12
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした