症状
ここから最新版(2.3.1 x64)インストーラをダウンロードしてインストールした。
その後 gem update --system
をしたら以下のエラーが出た。
gem install sass
でも同様のエラーが出た。
ERROR: While executing gem .. (Gem::RemoteFetcher::FetchError)
SSL_connect returned=1 errono=0 state=SSLv3 read server certificate verify faild ( https://api.rubygems.org/specs.4.8.gz)
スマートな解決方法 (コメントを元に実践してみました)
- ルート証明書をダウンロードしてくる。
- コマンドラインで次のコマンドを発行する。
set SSL_CERT_FILE=C:¥Users¥myname¥Desktop¥cacert.pem
- このとき
=
の前後にはスペースを入れないこと。 - 今回は myname というユーザのデスクトップに置いています。
- このとき
- 再度 install/update コマンドを試してみる。
(旧) 解決方法
- ルート証明書をダウンロードしてくる。
- 次のコマンドでデフォルトの証明書の位置を調べる。
ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE"
- 指定されたフォルダをせっせと作る!
自分の場合はC:/Users/Justin/Projects/knap-build/var/knapsack/software/x64-windows/openssl/1.0.1l/ssl/cert.pem
と表示された。 - 作ったフォルダに1でダウンロードしたファイルを
cert.pem
というファイル名で設置する。 - 再度 install/update コマンドを試してみる。
いろいろ調べてみたけど
「gem のインストールフォルダに新しい証明書を置けば直る」とか、「 source を http 指定にすればいい」とか、「証明書を持っている gem をインストールすればいい」とか(そもそもインストールコマンドが動かない)、いろいろ出てきたので、片っ端から試してみたけど全てダメ。
最終的にたどり着いたのがデフォルトで参照する証明書の場所を探して、そのフォルダやファイルを用意するという、なんともやるせない解決方法だった。