OSX:コマンドラインを介して一致するすべての証明書を削除する

OSX:コマンドラインを介して一致するすべての証明書を削除する

シェルスクリプトを使用して、一致するすべての証明書を削除します。

以下を使用して証明書のリストを見つけました。

security find-certificate -c "certificatename" -a -Z|grep SHA-1|awk '{ print $NF }'

出力は次のとおりです。

$ bash delete-cert.sh 
62D58774F9329FA1F96A2BB0C090130305B879ED
94B149CFDF32BDB1C9C28179FB586291167EC235

今、すべてのハッシュに対して削除コマンドを実行したいと思いますSHA-1。どうすればいいですか?

sudo security delete-certificate -Z hash

私はこれをしました、

hashes=$(security find-certificate -c "certificatename" -a -Z|grep SHA-1|awk '{ print $NF }')
for hash in $hashes; do
    echo deleting $hash
    sudo security delete-certificate -Z $hash
done

しかし、私は#chaosのための1行の解決策が好きです

ベストアンサー1

これを使用してください:

security find-certificate -c "certificatename" -a -Z | \
  sudo awk '/SHA-1/{system("security delete-certificate -Z "$NF)}'

awkその後、文字列が検索され、sudoハッシュを引数として使用してコマンドが呼び出されます。パスワードは一度だけ入力してください。awkSHA-1security delete-certificatesudo

おすすめ記事