Appleキーチェーンアプリケーションでは、システムルートを削除することはできません。無効にすることのみが許可されます。一度に1つだけ無効にすることができます。それぞれについて、3つのUIパネルを通過し、パスワードを入力する必要があります。これを自動化する方法と一度にすべてを行う方法はありますか?Appleの現在のシステムルートの選択は好きではありません。
Appleキーチェーンアプリケーションでは、システムルートを削除することはできません。無効にすることのみが許可されます。一度に1つだけ無効にすることができます。それぞれについて、3つのUIパネルを通過し、パスワードを入力する必要があります。これを自動化する方法と一度にすべてを行う方法はありますか?Appleの現在のシステムルートの選択は好きではありません。
回答:
何かを試す前に、キーチェーンをバックアップしてください。
ルート証明書のリスト:
sudo security dump-keychain /System/Library/Keychains/SystemRootCertificates.keychain
ダンプから、削除する証明書の名前またはSHA-1ハッシュ値を探して書き留めてください。
これで、security delete-certificate
コマンドを使用してそのルート証明書を削除できます。
使用法:証明書の削除[-c名] [-Zハッシュ] [-t] [キーチェーン...]
-c Specify certificate to delete by its common name -Z Specify certificate to delete by its SHA-1 hash value -t Also delete user trust settings for this certificate The certificate to be deleted must be uniquely specified either by a
一般名またはSHA-1ハッシュで見つかった文字列。検索するキーチェーンが指定されていない場合、デフォルトの検索リストが使用されます。
たとえば、次のコマンドを使用して中国語のルート証明書を削除できます。
sudo security delete-certificate -Z 8BAF4C9B1DF02A92F7DA128EB91BACF498604B6F /System/Library/Keychains/SystemRootCertificates.keychain
sudo security find-certificate -a -c startcom -Z /System/Library/Keychains/SystemRootCertificates.keychain
ハッシュによる削除証明書によるルートの不信は壊れています。sudo security delete- certificate -Z 8250BED5A214433A66377CBC10EF83F669DA3A67 / System/Library/Keychains/SystemRootCertificates.keychain
これは、この参照された証明書が存在する場合でも、常に「security:SecKeychainItemDelete:UNIX [Operation not allowed]」で失敗します。
DEFCON24での講演の回避策を次に示します。
代わりに、ルート証明書をcerファイルとして保存し、次を使用します。 security add-trusted-cert -d -r deny -k "/Library/Keychains/System.keychain" certname.cer