踊る犬.netブログ (旧)

El CapitanのSSL問題、Keychainもフリーズする場合の対処法

Mac OSXをEl CapitanにしたらChromeでTwitterなどが開けない

App Storeも開けないし、なんかCPUが過剰に動いているし、困りました。

VeriSignのSSL証明書が原因

似たような症状の人は多く、以下の記事に概ねの解決方法が示されています。

ようは、VeriSignが悪いんですね。

Keychain Accessが固まる

上記の解決法に倣って操作しようとすると、Keychain Accessがフリーズします。
フリーズする条件は、ログインキーチェーンの以下の項目を選択した時です:

これらの証明書が悪さをしているのは、もう明らかですね。

ターミナルから証明書の削除を試みる

Keychain Accessで削除できないんじゃ、お手上げだ!!という方、あきらめないでください。

間違っても、Mac – El capitanにアップデートしてCPU使用率がやばくなった時の対応法 – Qiita で示されているようにキーチェーンをリセットするなんて方法はとらないでください。

CLIから削除を試みます。
まずはログインキーチェーンから、VeriSignの証明書を探します:

$ security find-certificate -c Veris
keychain: "/Users/***/Library/Keychains/login.keychain"
class: 0x80001000
attributes:
    "alis"<blob>="VeriSign Class 3 Public Primary Certification Authority - G3"
    "cenc"<uint32>=0x00000003
    "ctyp"<uint32>=0x00000001
    "hpky"<blob>=0xF0115C20ABF0D0FE3D0842EF9571E372C11C1256  "36021134 253360320376=10B357225q343r3013422V"
    "issu"<blob>=0x305F310B300906035504061302555331173015060355040A130E564552495349474E2C20494E432E31373035060355040B132E434C4153532033205055424C4943205052494D4152592043455254494649434154494F4E20415554484F52495459  "0_1130110603U04062302US1270250603U04122316VERISIGN, INC.17050603U041323.CLASS 3 PUBLIC PRIMARY CERTIFICATION AUTHORITY"
    "labl"<blob>="VeriSign Class 3 Public Primary Certification Authority - G3"
    "skid"<blob>=<NULL>
    "snbr"<blob>=0x4AC9EA088EE6F78CC7A5F9FA39A49396  "J311352102163463672143072453713729244223226"
    "subj"<blob>=0x3081CA310B300906035504061302555331173015060355040A130E564552495349474E2C20494E432E311F301D060355040B1316564552495349474E205452555354204E4554574F524B313A3038060355040B1331284329203139393920564552495349474E2C20494E432E202D20464F5220415554484F52495A454420555345204F4E4C59314530430603550403133C564552495349474E20434C4153532033205055424C4943205052494D4152592043455254494649434154494F4E20415554484F52495459202D204733  "02013121130110603U04062302US1270250603U04122316VERISIGN, INC.1370350603U04132326VERISIGN TRUST NETWORK1:080603U0413231(C) 1999 VERISIGN, INC. - FOR AUTHORIZED USE ONLY1E0C0603U040323<VERISIGN CLASS 3 PUBLIC PRIMARY CERTIFICATION AUTHORITY - G3"

悪い子たちが出てきました。以下のコマンドで、駆逐しましょう。

$ security delete-certificate -c "VeriSign Class 3" <ログインキーチェーンのファイル名>

実行後、何もアウトプットされないので不安になりますね。もう一度実行してみると以下のように表示されます。

$ security delete-certificate -c "VeriSign Class 3" /Users/nora/Library/Keychains/login.keychain
Unable to delete certificate matching "VeriSign Class 3"%

Keychain Accessを開いて、悪さをしていた証明書が削除されていることを確認しましょう。
これで、TwitterなどのVeriSign系SSLサイトが再び開けるようになりました。

インターネットライフを楽しみましょう。

参考