LoginSignup
12
11

More than 5 years have passed since last update.

gem install時にcertificate verify failed が発生したら

Last updated at Posted at 2016-10-14
ERROR:  Could not find a valid gem 'compass' (>= 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)

SSLv3の読み込みサーバーの認証で認証確認に失敗しています。
今回はWindowsで発生しました。

これはrubygems.orgが契約しているSSL証明書を発行している認証局のルート証明書の有効期限が切れてしまったことに起因しています。

解決方法

認証局のルート証明書を最新のものにしましょう。
https://rubygems.org/にアクセスしてみて、アドレスバーの鍵の部分をクリック。
スクリーンショット_2016-10-13_14_52_42.png
「詳細」をクリックするとインスペクタが開く。
スクリーンショット_2016-10-13_14_55_52.png
そしてView certificateをクリックするtSSLのタイプや認証局の情報などをまとめて確認することができます。
スクリーンショット 2016-10-13 14.10.58.png

  • 認証局: GlobalSign
  • タイプ: OrganizationSSL
  • 暗号化技術: SHA-256

ということがわかります。

GlobalSignの公式サイトのサポートを見てみると、GlobalSign Root Certificatesというズバリな項目があるので覗いてみます。

スクリーンショット_2016-10-13_14_41_38.png

この表でどのルート証明書を利用すれば良いかがわかります。R1のようです。(R1に関してはこちらに詳細があります

スクリーンショット 2016-10-13 15.07.31.png

新しいルート証明書が公開されているのでそちらをダウンロードして、rubygemsに設置すれば問題が解決します。
Download Root-R1 (Binary/DER Encoded)で素直にder形式をダウンロードしても良いし、View in Base64で見れる証明書をコピーして自分でpemファイルを作成して設置しても良いです。

設置場所

Rubyをインストールした方法や場所変わってきます。ここでは一般的な場所を示します。

Windows

where gem

とやると

C:\Ruby23-x64\bin\gem

などと帰ってきます。
そしてRubyのバージョンが2.3.0だった場合、C:\Ruby23-x64\lib\ruby\2.3.0\rubygems\ssl_certsとかだと思います。

MacOS

rbenvを使ってrubyをインストールしている場合は
/Users/user_name/.rbenv/versions/2.3.0/lib/ruby/2.3.0/rubygems/ssl_certsとかになると思います。

12
11
0

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
12
11