[rubygems][windows][ssl]

windows上のrubygemsでsslのエラーが出て証明書の入れ替えでも上手く行かなかった場合にやった事。

More than 1 year has passed since last update.

背景

windowsにrubyをインストールする際に成功したパターン(バージョン含む)を繰り返し適応してきましたが、今回新たにインストールしたDELLのInspiron 13 5000 Seriesににインストールしようとしたらsslがらみではまってしまってそれを解決するまでの話です。

rubyインストールからエラー発生まで

ruby 2.3.1をインストールしました。

コマンドプロンプトを起動してrubygemsを更新します。
すると以下のsslに関するエラーが出ます。

>gem update --system
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)

検索で見つかる対策ではうまくいかず

windows rubygems sslのキーワードで検索すると証明書を置き換えるという解決策が出できます。

具体的なことはshimojさんがまとめてくれてますのでそちらを見ていただくとして、今回は残念ながらこれでは解決しませんでした。
新たにOpenSSL::X509::StoreErrorがでています。

>gem update --system
ERROR:  While executing gem ... (OpenSSL::X509::StoreError)

こちらに関してはいろいろ検索しましたがダイレクトに解決策が見つかりませんでした。

対策

最終的に見つかったのがこちらです。

SSL Error When installing rubygems, Unable to pull data from 'https://rubygems.org/

  • http://rubygems.org/pages/download よりrubygemsの最新のバージョンのzip形式をダウンロードします。(この時点では2.6.7でした。)
  • zipファイルを展開します。
  • 展開したフォルダー内で ruby setup.rb を実行します。
> cd  C:\Users\[username]\Downloads\rubygems-2.6.7\rubygems-2.6.7
> ruby setup.rb

これでもう一度 gem update --system を試してみます。

>gem update --system
Latest version currently installed. Aborting.

最新バージョンであることが確認できました。
bundlerのインストールも正常にできています。

>gem install bundler
Fetching: bundler-1.13.2.gem (100%)
Successfully installed bundler-1.13.2
Parsing documentation for bundler-1.13.2
Installing ri documentation for bundler-1.13.2
Done installing documentation for bundler after 11 seconds
1 gem installed

という事で解決しました。