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

이것을 사용하십시오 :

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

awk그런 다음 문자열이 검색 sudo되고 해시 를 인수로 사용하여 명령이 호출됩니다 . 비밀번호는 한 번만 입력하면 됩니다 .awkSHA-1security delete-certificatesudo

관련 정보