Gem SSL Error

gem を update しようと rubygems-update をインストールしよと思ったら、以下のようなエラーが出た。

> gem i rubygems-update
ERROR:  Could not find a valid gem 'rubygems-update' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server ce
rtificate B: certificate verify failed (https://rubygems.org/latest_specs.4.8.gz)

Ahhh...
こんな時は先人達の知恵を拝借(Google検索)、調べてみると証明書が古いからみたいだった。

解決方法

以下のサイトから、cacert.pem ファイルを任意の場所に保存します。

ここでは C:\Ruby200-x64\ に保存しました。

環境変数を追加

以下のコマンドで環境変数 SSL_CERT_FILE を追加します。ちなみにコマンドは PowerShell のコマンド。

$Env:SSL_CERT_FILE += "C:\Ruby200-x64\cacert.pem"

環境変数の確認

追加した環境変数 SSL_CERT_FILE を確認してみる。以下のコマンドを実行。

$Env:SSL_CERT_FILE.split(";")

すると設定した値を返してくれるでしょう。

$Env:SSL_CERT_FILE.split(";")
C:\Ruby200-x64\cacert.pem

環境変数の削除

ちなみに、環境変数 SSL_CERT_FILE 削除する時は、以下のコマンドを実行すれば削除される。

Clear-Item -path Env:\SSL_CERT_FILE

rubygems-update をインストール

環境変数の確認が済んだら、もう一度以下のコマンドを実行して rubygems-update をインストールします。

gem install rubygems-update

うまく行けば以下のような感じでインストールできるでしょう。

gem install rubygems-update
Fetching: rubygems-update-2.4.5.gem (100%)
Successfully installed rubygems-update-2.4.5
Parsing documentation for rubygems-update-2.4.5
Installing ri documentation for rubygems-update-2.4.5
1 gem installed

インストールが済んだら、以下のコマンドで gem をアップデート

gem update --system

gem のサイトを見てみたら、今風な感じでリニューアルしてた。

(SSL エラーはこのリニューアルの影響もあるのかも知れない)