概要
2011年5月末以降、github.comにはDigiCertのEV SSL証明書(DigiCert HighAssurance EV CA-1)が使われるようになりました。しかし、CentOS 5の標準パッケージにはDigiCertのEV SSL用ルート証明書(DigiCert High Assurance EV Root CA)が含まれていないため、cloneしようとしたところでSSLの認証エラーが発生します。
対策として、EV SSL用ルート証明書をダウンロードして、SSL証明書に追加しました。
問題
bundle installすると、GitHubからcloneしようとしたところでSSLの認証エラーが発生しました。
$ bundle install
...
Fetching https://github.com/hattori/opensocial-wap.git
error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/hattori/opensocial-wap.git/info/refs
fatal: HTTP request failed
Git error: command `git clone 'https://github.com/hattori/opensocial-wap.git' "/home/tetsuyai/dev/projects/myapp/vendor/bundle/ruby/1.9.1/cache/bundler/git/opensocial-wap-b6d4c1ab787fe0d05a4483fea5d29b1752487a7d" --bare --no-hardlinks` in directory /home/tetsuyai/dev/projects/myapp has failed.
解決方法
DigiCert Root Certificates - Download & Test | DigiCert.comからEV SSL用ルート証明書(DigiCert High Assurance EV Root CA)をダウンロードして、SSL証明書に追加します。
# wget -P /tmp https://www.digicert.com/testroot/DigiCertHighAssuranceEVRootCA.crt
SSL証明書の場所は環境によって異なるので、まずは所在を確認します。
# locate libcurl.so
/usr/lib64/libcurl.so.3
/usr/lib64/libcurl.so.3.0.0
# strings /usr/lib64/libcurl.so.3 | grep bundle
/etc/pki/tls/certs/ca-bundle.crt
所在を確認したら、追加します。
# cat /tmp/DigiCertHighAssuranceEVRootCA.crt >> /etc/pki/tls/certs/ca-bundle.crt