github からの git clone で SSL 関連のエラーが発生した場合の対処

github からとある repository を clone しようとしたんですけど、2回ほど、いずれも SSL がらみのエラーで怒られまして。その時の対処法をメモしておきます。

まず一つ目。

$ git clone https://github.com/***********/***********.git
Cloning into '***********'...
fatal: Unable to find remote helper for 'https'

https なんてプロトコル扱えないぜ?と。CentOSでgitのproxy越えにハマる - なぜか数学者にはワイン好きが多いとかGithub のプライベートリポジトリからcloneするときにSSLエラーがでた場合の対応策 - Goodpicとか読むと、curl が無いか curl が SSL をサポートしてないか、いずれにしても git をインストールし直す必要があると判明。これは yum で git を install し直したら解決。以前の install で何かが足りていなかったっぽい。

で、上記のエラーは発生しなくなったわけですけど、また別のエラーが。

$ git clone https://github.com/***********/***********.git
Cloning into '***********'...
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/***********/***********.git/info/refs

fatal: HTTP request failed

これまた SSL 絡みで、証明書が verify できんと。これについてはgit:リポジトリにhttpsでアクセスしてみる | 自転車で通勤しましょ♪ブログなど見ると「.gitconfigのhttp.sslVerifyをfalseにしろ」なんて乱暴なことが書いてあるので試しに

$ git config --global http.sslVerify false

すると解決。無事(?)clone できました。まぁ実際にはGithub のプライベートリポジトリからcloneするときにSSLエラーがでた場合の対応策 - Goodpicなどに書いてあるように、きちんと証明書を指定してあげるのが真っ当な対応だと思うのでそちら推奨。

ところで、上記では https で URL 指定しているわけですが、

$ git clone git@github.com:***********/***********.git

てな感じで、SSH 経由で clone すれば上記のような問題は発生しないはず。次回にでも書きますけど、https だとうまく push が出来なかったりなど問題も発生するので、基本的には SSL でアクセスした方が良いです。まぁ、こっちはこっちで必要な手続きがあるので、それはまたいずれ。