SSL証明書が切れたと思ったら別の原因で通信できなかった件
Vagrant にていつもの通りCentOS上でサーバ構築するためにbundle install実行したらこんなエラーメッセージが表示されました。
Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://rubygems.global.ssl.fastly.net/gems/diff-lcs-1.2.5.gem)
最初に、昨年発生したSSLv3.0脆弱製が頭をよぎったのですが、google先生やstackoverflow先生を見てみるとどうやら原因はそこではない空気が漂っている。 (httpsを使わずにhttpを使えって言う回答はちょっと違うような気が。。。)
最終的にVagrantのイメージ(CentOS6.3)もだいぶ変えてないし、SSLクライアント証明書が古いんじゃないかと思い、おもむろに更新を実行
yum install ca-certificates Loaded plugins: fastestmirror, versionlock Loading mirror speeds from cached hostfile : Setting up Install Process Package ca-certificates-2014.1.98-65.0.el6_5.noarch already installed and latest version Nothing to do
?????(最新バージョンだ。。。)
ここで数十分間悩み、以下を実行
curl -L -I https://rubygems.global.ssl.fastly.net --cacert /etc/pki/tls/certs/ca-bundle.crt curl: (60) Peer certificate cannot be authenticated with known CA certificates :
??????????(curlで最新のCA証明書を指定しても駄目)
さらに数十分間悩んだ末おもむろに以下を実行してみた所。。。
date Sun Nov 22 21:02:03 UTC 2009
時刻が大幅に合ってねえw
ということで、原因はインスタンスの時刻がずれていたことでした。 (ntpは起動していたが差が大きすぎると補正できない)
以下のように手動で強制的にntpサーバに同期
sudo /etc/init.d/ntp stop sudo /usr/sbin/ntpdate ntp.nict.jp sudo /etc/init.d/ntp start bundle install # 成功!
良かった