Удалить закрытый ключ из Mac OS X keychain с помощью терминала



Я импортировал идентификатор разработчика (сертификат + закрытый ключ) для разработки iOS в связку ключей, используя терминальное приложение "Безопасность" с командой



security import identity.p12 -k <keychain> -P <passphrase>


Это импортирует оба элемента, включенные в файл p12, сертификат и закрытый ключ, в данную связку ключей. Однако я забыл указать -T /usr/bin/codesign, который добавляет приложение codesign в список доступа закрытого ключа. Я пытался добавить приложение codesign в список доступа безрезультатно:




  • я пытался ... повторно импортируйте идентификатор с добавленным параметром, но это, похоже, не изменит список доступа к закрытому ключу.

  • я также попытался удалить сертификат из Связки ключей с помощью security delete-certificate и повторного импорта. Это не изменяет список доступа к закрытому ключу.


Поскольку у меня есть только ssh-доступ к машине, использование приложения Keychain GUI не будет работать. Поэтому я ищу способ удалить закрытый ключ из Связки ключей (чтобы я мог повторно импортировать удостоверение впоследствии). Я проверил man-страницу инструмента security, но не нашел способа удалить закрытый ключ.



Есть ли способ удалить закрытый ключ из Связки ключей, используя только команды терминала (поскольку у меня есть только ssh-доступ к рассматриваемой машине)?

910   1  

1 ответ:

В вашей системе есть несколько брелоков:

sudo security list-keychains
"/Users/JonDoe/Library/Keychains/login.keychain"
"/Library/Keychains/System.keychain"

Я думаю, что вы импортировали его в систему-брелок: Сначала сделайте резервную копию корневых сертификатов вашей системы, прежде чем вносить какие-либо изменения (или любую другую связку ключей, которую вы выберете):

cd /System/Library/Keychains/
sudo cp SystemRootCertificates.keychain SystemRootCertificates.keychain.old

Перечислите все брелки / все сертификаты в вашем брелке:

ls -l /System/Library/Keychains/
sudo security dump-keychain /System/Library/Keychains/SystemRootCertificates.keychain

Со второй командой показывается каждый сертификат связки ключей. Определите сертификат, который вы хотите удалить. Затем удалите сертификат со следующими данными команда:

sudo security delete-certificate -Z <SHA-1 hash of certificate> /System/Library/Keychains/SystemRootCertificates.keychain
**alternative:**
sudo security delete-certificate -c <common name of certificate> /System/Library/Keychains/SystemRootCertificates.keychain

Вот и все. Теперь вы можете импортировать сертификат снова. В случае ошибки вы можете восстановить связку ключей с помощью следующей команды:

sudo security import certificate_files_backup -k /System/Library/Keychains/SystemRootCertificates.keychain -t cert

Comments

    Ничего не найдено.