brew updateのSSL証明書エラーに対処した
いつものようにbrew updateを実行したらSSL証明書のエラーが発生したので、その対処の覚え書。
動作環境
- MacOSX 10.9.4
症状
$ brew update fatal: unable to access 'https://github.com/Homebrew/homebrew/': SSL certificate problem: Invalid certificate chain Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master
方法その1
下記の方法に従って、有効期限が切れた証明書を削除した。
キーチェーンで「有効期限が2014-07-27の DigiCert High Assurance EV Root CA」を探して、これを消す方法で解決してる人がいた。試してみたところ、うまくいったっぽい。
[解決済み]OSXアップデートしたらGitHubでSSL証明書エラーが出て繋がらなくなった件と対処法 - MEMOGRAPHIX
結果として問題は上手く解決して、brew updateが成功するようになった。
方法その2
しかしながら、上記の方法では解決しない別マシンも有った。そこで下記の手順に従って、証明書の場所を「システムルート」から「システム」に変更した。(両者にどのような違いが有るのか分かっていない)
1. go to Keychain Access
homebrew install broken on OS X 10.9.2 · Issue #28844 · Homebrew/legacy-homebrew · GitHub
2. find DigiCert High Assurance EV Root CA in System Roots keychain
3. drag'n'drop it to System keychain
問題は上手く解決して、brew updateが成功するようになった。
本家のブログに情報が載っていたけど、互換性確保のために残してあった証明書が、今回のエラーの発端だったようだ。
The expired certificate in question is the “DigiCert High Assurance EV Root CA” [Expiration July 26, 2014] certificate. This temporary intermediate certificate was used in years past as part of a compatibility chain for older devices.
How to Fix an Expired Intermediate SSL Certificate Chain