безопасность / кодировка в Sierra: связка ключей игнорирует настройки контроля доступа и запросы интерфейса для разрешения

Начиная с macOS Sierra, я больше не могу импортировать идентификатор кода в цепочку для ключей с / usr / bin / security без запроса интерфейса пользователя usr / bin / codesign для доступа при использовании этого идентификатора. Это нарушает упаковочные скрипты сервера сборки. Кажется, нет никакого обходного пути. Это влияет на созданные цепочки ключей, а также на login.keychain.

Шаги для воспроизведения: Выполните следующие команды в терминале (для импорта необходимо иметь подписывающее удостоверение):

security create-keychain -p test buildagent.keychain
security unlock-keychain -p test buildagent.keychain

security list-keychains -d user -s buildagent.keychain
security default-keychain -s buildagent.keychain

security import identity.p12 -k buildagent.keychain -P password -T /usr/bin/codesign

codesign -vfs '$IDENTITY' '${PRODUCT}' --keychain 'buildagent.keychain'

Результат: macOS показывает UI-запрос, запрашивающий разрешение на доступ к ранее импортированному секретному ключу.

Я пробовал много обходных путей, но, похоже, ничего не работает:

Использование нового расширения .keychain-db при указании имени цепочки для ключейИспользование login.keychain вместо пользовательскогоИмпорт p12 с -A («Разрешить любому приложению доступ к импортированному ключу»)Импорт сертификата и ключа по отдельности (перед извлечением из p12 с помощью openssl pkcs12)

Импорт идентификатора определенно работает, я вижу сертификат и ключ при отображении содержимого цепочки для ключей в приложении Keychain Access. Настройка контроля доступа для закрытого ключа также правильно настроена (с желаемым правилом исключения кодового знака).

Как я могу избежать приглашения от Sierra?

Ответы на вопрос(6)

Ваш ответ на вопрос