изменить контроль доступа для каждого приложения для закрытого ключа через командную строку?

У меня есть сертификат в цепочке ключей, который содержит закрытый ключ. Я хотел бы добавить приложение в «белый список» контроля доступа для этого ключа. Я знаю, как это сделать с помощью графического инструмента цепочки ключей, но я хотел бы сделать это через командную строку как часть сценария сборки Xcode.

Из того, что я могу сказать, команда «безопасность» - это способ манипулировать цепочками ключей в командной строке, но я не могу понять из справочной страницы, как я буду выполнять эту задачу.

Для полноты, вот что я делаю в инструменте цепочки для ключей, что я хотел бы сделать через командную строку:

  1. Щелкните сертификат, чтобы показать его закрытый ключ.
  2. Щелкните правой кнопкой мыши закрытый ключ и выберите пункт меню «Получить информацию».
  3. Перейдите на вкладку «Контроль доступа».
  4. Нажмите кнопку «+», чтобы добавить приложение в белый список.
  5. Выберите приложение (в моем случае Xcode) и нажмите «Добавить».

Меня также может заинтересовать, как разрешить доступ ко всем приложениям.


person jph    schedule 13.07.2012    source источник


Ответы (2)


Я не думаю, что security может сделать это после импорта ключа. Однако, если вы импортируете ключ в первый раз, вы можете использовать флаг -T:

 -T  Specify an application which may access the imported key 
     (multiple -T options are allowed)

Итак, в моем случае я смог сделать это:

security import my.key -P mypassword -T /usr/bin/pkgbuild

И все заработало!

person Mitchell    schedule 01.12.2012
comment
это здорово, но на самом деле это не отвечает на вопрос. При условии, что я уже импортировал закрытый ключ (вместе со связанным с ним сертификатом), и теперь я хочу разрешить своему приложению программный доступ к этому закрытому ключу? как мне это сделать? много раз (в корпоративной среде) сертификаты массово развертываются заранее ИТ-специалистами, и мне нужно только позволить моему приложению использовать их. Как это сделать? - person Motti Shneor; 28.06.2020

Отказ от ответственности

Честно говоря, это, вероятно, не лучшее место для публикации этого... но я наткнулся на эту (и несколько других) записей с более или менее той же проблемой. См. также https://stackoverflow.com/a/34388302/359100. Но поскольку я нашел решение, которое может помочь другим людям, которые пытаются изменить контроль доступа для закрытого ключа в цепочке ключей через удаленный сеанс, мое решение может помочь...

B/c для меня импорт через CLI не работал (с использованием -T или -A). Я всегда получал этот щелчок относительно доступа из Связки ключей.

Кстати: если вы знаете лучший ТАК ответ, где это место... пожалуйста, дайте мне знать или переместите его туда...

Решение

Создайте связку ключей на своем локальном компьютере. Например. назовите его apple-development[.keychain]. Добавьте туда свои приватные ключи и назначьте необходимый контроль доступа (лучше всего: «Разрешить все...»). Теперь скопируйте эту связку ключей на удаленный Mac и добавьте ее туда с помощью приложения «Связка ключей» (Файл/Добавить связку ключей...). Для CI вы можете сделать что-то вроде этого:

security unlock-keychain -p YOUR-KEYCHAIN-PASSWORD "${HOME}/apple-development.keychain"
person Sleepless Annoyed Nerd    schedule 24.02.2016