limitusus’s diary

主に技術のことを書きます

Githubの証明書問題をまっとうに解決する

github SSL certificate problem - A Life Less Ordinary と同じ問題に遭遇してしまったので、まっとうな解決策を探ってみたところ、無事に解決できたのだが、どうやら同じようなことをしているページが見つからなかったので書いておく。

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/......
  • 問題はGithubHTTPSで使われているSSL証明書を発行しているところ(CA)が変わったが、たまたまそのgitコマンドは Root CA のセットが古く、新しいCAの証明書が入っていなかったこと。
  • したがって、根本的な解決策としては新しい Root CA のセットを用意して、gitがそれを参照するようにしてあげればいい。

まず、そういう Root CA のセットをとってくる。

curl http://curl.haxx.se/ca/cacert.pem -o ca-bundle.crt
  • /etc/pki/tls/certs/ に置いたりするみたい。今回は全然関係ない適当なところに置いた。

あとはgitが参照する Root CA セットのファイル名をどこに置くかということになる。
git-config(1) によると、どうやら http.sslCAInfo でいいらしい。

ということで、たとえば

git config --global http.sslCAInfo /home/limit/ssl/ca-bundle.crt

みたいなことをするか、適当に書くなどして、~/.gitconfig は以下のようになる。

[http]
    sslCAInfo = /home/limit/ssl/ca-bundle.crt

と、ここまで書いておいて、実際やってるページをみつけた。 Github のプライベートリポジトリからcloneするときにSSLエラーがでた場合の対応策 - Goodpic