Mac OS X 10.9.2でGitHubにアクセスするとサーバー証明書のエラーが発生する場合の解決策
問題
Mavericks の最新のアップデート(10.9.2)をインストールした後、Google ChromeでGitHubにアクセスした時に、SSLサーバー証明書のエラーが表示されるようになりました。
このように「実際の github.com に接続できない」と表示されます。
アドレスバーのアイコンをクリックして証明書を表示させると、以下のようにDigiCertによって署名されていることがわかります。
Bitbucketでも同じくエラーが表示されます。Bitbucketの証明書もDigiCertによるものです。
ターミナルで、git cloneしたときにも以下のようにエラーが表示されます。
$ git clone https://github.com/rails/rails.git Cloning into 'rails'... error: SSL certificate problem: Invalid certificate chain while accessing https://github.com/rails/rails.git/info/refs?service=git-upload-pack fatal: HTTP request failed
解決策
調べたところ、以下のページが見つかりました。 キーチェーンアクセスのログインの欄にある、DigiCertの証明書を削除すると直ったと書かれています。
osx - Can not clone any git repository from github - Super User
fixed my problem by checking my Keychain (Application -> Utilities -> Keychain Access.app)
I figured out that I had a own Digicert Certificate in my loging Keychain. It looks like this was broken. I have removed it and after this everything works fine.
Now https://github.com has a green "button" in the url bar instead of an grey one.
キーチェーンアクセスを確認してみると、確かに「ログイン」の欄にDigiCertの証明書があります。
この「DigiCert High Assurance EV Root CA」を削除したところ、正常に表示されるようになりました。
注意:証明書の削除は間違って行うと、正常なWebサイトにアクセスした時にも警告が出るようになり、元に戻せません。自己責任で行ってください。
証明書のツリーを見ると、一番上がオレンジ色のルート証明書になっていることがわかります。
原因
原因はよくわかっていませんが、思い返すと2011年ごろにGitHubの証明書がエラーになるとかで、証明書を自分で追加したような気がします。
goto fail; goto fail;のバグが修正されたことで、以前自分で追加した証明書が不正だと判定されるようになったのかもしれません。
しかし、2011年の時点ではMavericksではなかったので、その時点では問題なかったはず。もう少し勉強しないと。。