githubからのcloneがSSLのエラーで出来なくなってた
$ git clone https://github.com/maimuzo/android_utils.git Cloning into android_utils... 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/maimuzo/android_utils.git/info/refs fatal: HTTP request failed
なんか、久しぶりにgithubからcloneしようとしたら、こんなエラーが出てしまいました。SSLのエラーというとMacPortsのcurlがSSLのエラーを出すトラブルが直った - kanonjiの日記が頭を過ぎるんですが、このcurlの件は解決してるし、git
はMacPortsからのじゃないしで、原因は別にありそう。
解決策
% sudo chmod 666 /usr/share/curl/curl-ca-bundle.crt % sudo cat DigiCertHighAssuranceEVRootCA.crt >> /usr/share/curl/curl-ca-bundle.crt % sudo chmod 644 /usr/share/curl/curl-ca-bundle.crtまたGithub からcloneするときにSSLエラーが出たので、DigiCertのSSL証明書を追加して解決 - Goodpic
原因も含めて解決策を紹介してるエントリーがあったので、そっくりそのまま。
気になる点
やってる事は、curl
にCAの証明書を登録*1してるわけなので、curl
でhttps://github.comに通信したらエラーになるんじゃないかなと思ったんですが、そういうわけじゃない様子。
$ curl -LO https://github.com/maimuzo/android_utils.git % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 18001 100 18001 0 0 6118 0 0:00:02 0:00:02 --:--:-- 6586
CA証明書を登録する前でも、上記コマンドは動きました。
$ GIT_SSL_NO_VERIFY=true git clone https://github.com/maimuzo/android_utils.git
今回のエラーは、回避策としてこういうのもあるらしい。GIT_SSL_NO_VERIFY
を使う場合、fetchでもpullでもpushでも、通信する際は毎回GIT_SSL_NO_VERIFY=true
を付ける必要があって、正直めんどうです。
ただ、この環境変数*2の名前から、gitのもので、SSLの検証をするかどうかって感じなので、curl
コマンドとして使う際は、デフォルトで検証しないって事なのかも。まぁよく分かりません。