使用 shell 脚本删除所有匹配的证书。
我使用以下方法找到了证书列表:
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
用这个:
security find-certificate -c "certificatename" -a -Z | \
sudo awk '/SHA-1/{system("security delete-certificate -Z "$NF)}'
awk
被称为sudo
.awk
然后搜索字符串SHA-1
并security delete-certificate
使用哈希作为参数调用命令。您只需提供sudo
密码一次。