LoginSignup
12
13

More than 5 years have passed since last update.

【Windows】gem updateでSSL_connect returnedエラーが起こる

Last updated at Posted at 2014-12-29

WindowsにSCSSのビルド環境を作るために、rubyコマンドの実行環境を作りましたが、最新版rubyインストーラー(2014.12.30 時点)でちょっと苦労したことがありました。

Windows版 rubyインストーラーを「 http://rubyinstaller.org/downloads/ 」からダウンロードして、rubyコマンドを実行できるところまで環境を作ったが、その後の「gem update --system」コマンドのところでSSLエラーが表示されてしまいました。

Windows版 rubyインストーラー

今回使用したインストーラーはこれです。
rubyinstaller-2.1.5-x64.exe

問題のSSLエラーメッセージ

こんな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)

原因を調べてみたら、インストーラーに含まれているSSL証明書が古いことが原因らしいです。
参考ページ) https://gist.github.com/luislavena/f064211759ee0f806c88

しかしこれ、インストーラーをビルドするときにチェックしなかったんでしょうかね。

SSLエラーを解消して、gemを最新版にする方法

とりあえず、参考ページに書いてあることを実践して、SSLエラーを解消します。

gem --version
> 2.2.2
gem which rubygems
> C:/Apps/ruby/lib/ruby/site_ruby/2.1.0/rubygems.rb
cd C:\Apps\ruby\lib\ruby\gems\2.1.0

ここから修正版RubyGemsファイルを取得する。
https://github.com/rubygems/rubygems/releases/tag/v2.2.3
緑色の[rubygems-update-2.2.3.gem]ボタンを押してダウンロードする。

そしたら下のパスへ保存する。
C:\Apps\ruby\lib\ruby\gems\2.1.0\rubygems-update-2.2.3.gem

gem install --local rubygems-update-2.2.3.gem
gem --version
> 2.2.3
update_rubygems --no-ri --no-rdoc
gem uninstall rubygems-update -x
gem which rubygems
> C:/Apps/ruby/lib/ruby/site_ruby/2.1.0/rubygems.rb
start C:/Apps/ruby/lib/ruby/site_ruby/2.1.0/rubygems.rb

以下パスのpemファイルをダウンロードする。
https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/AddTrustExternalCARoot-2048.pem
保存先はこちら。(自分の場合は、ssl_certsフォルダが無かったので作りました)
C:\Apps\ruby\lib\ruby\gems\2.1.0\gems\ssl_certs\AddTrustExternalCARoot-2048.pem

gem update --system

そうすると、Updating rubygems-update と表示されて無事にアップデートが始まります。

gem --version
>2.4.5

以上、無事にgemを最新版にアップデートできました。

12
13
2

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
13