В этом руководстве показано, как подписывать файлы из командной строки Windows с помощью сертификата подписи кода и закрытого ключа, хранящихся в хранилище ключей Azure. Для выполнения этих инструкций вам потребуется:
- An Учетная запись Azure
- A Хранилище ключей
- A сертификат подписи кода установлен в вашем Key Vault. Вы также можете:
- Инструмент подписи Azure установлен на компьютере, который вы будете использовать для подписи
Что такое инструмент подписи Azure?
Инструмент подписи Azure это утилита с открытым исходным кодом, которая предлагает ЗнакИнструмент функциональность сертификатов и ключей, хранящихся в Azure Key Vault. Вы можете установить Azure Sign Tool с помощью следующей команды в Windows PowerShell (требуется пакет SDK для .NET):
dotnet tool install --global AzureSignTool
Шаг 1. Зарегистрируйте новое приложение Azure
Во-первых, вам необходимо зарегистрировать новое приложение Azure, чтобы вы могли подключиться к Key Vault для подписи.
- Войдите в Лазурный портал.
- Перейдите в Azure Active Directory, (Нажмите Дополнительные услуги если значок Azure Active Directory не отображается.)
- Нажмите Регистрация приложений, в левом столбце.
- Нажмите Новая регистрация.
- Дайте вашему заявлению Фамилия И нажмите Зарегистрируйтесь кнопка. Оставьте остальные настройки по умолчанию.
- Ваше новое приложение зарегистрировано. Скопируйте и сохраните показанное значение для ID приложения (клиента), потому что он вам понадобится позже.
- Нажмите Аутентификация.
- Под Дополнительные настройки, задавать Разрешить общедоступные клиентские потоки в
Yes
.
- Нажмите Сохранить.
Шаг 2. Создайте секрет клиента
Затем сгенерируйте секрет клиента, который будет использоваться в качестве учетных данных при подписании.
- Нажмите Сертификаты и секреты в левом меню.
- Нажмите Секрет нового клиента.
- Дайте секрету вашего клиента Описание, установите срок действия по желанию и щелкните Добавить .
- Скопируйте Значение секрета вашего нового клиента немедленно и сохраните его в надежном месте. В следующий раз, когда страница будет обновлена, это значение будет замаскировано и безвозвратно.
Шаг 3. Включите доступ в Key Vault
Теперь вам нужно включить доступ для вашего приложения в Azure Key Vault.
- Перейдите к Key Vault, содержащему сертификат, который вы хотите использовать для подписи, и щелкните значок Политики доступа ссылку.
- Нажмите Добавить политику доступа.
- Под Ключевые разрешения, включить
Sign
.
- Под Разрешения сертификата, включить
Get
.
- Нажмите Не выбрано, ничего не выбрано ссылка, под Выбрать принципала, затем с помощью поля поиска найдите и выберите приложение, созданное в предыдущем разделе.
- Нажмите Выберите .
- Нажмите Добавить .
- Нажмите Сохранить.
- Ваша политика доступа настроена, и вы готовы начать подписывать файлы.
Шаг 4: подпишите файл
Теперь вы наконец готовы подписать код!
- Вам понадобится следующая доступная информация:
- Ниже приведен пример команды в PowerShell для подписи и отметки времени файла с помощью Azure Sign Tool. Замените значения во ВСЕХ ЗАГЛАВНЫМИ буквами своей фактической информацией:
azuresigntool sign -kvu KEY-VAULT-URI -kvc CERTIFICATE-NAME -kvi APPLICATION-CLIENT-ID -kvs CLIENT-SECRET -tr http://ts.ssl.com/ -td sha256 ПУТЬ-К-ИСПОЛНЯЕМОМУ
Примечание: По умолчанию SSL.com поддерживает метки времени из ключей ECDSA.
Если вы столкнулись с этой ошибкой:The timestamp certificate does not meet a minimum public key length requirement
, вам следует обратиться к поставщику программного обеспечения, чтобы разрешить временные метки из ключей ECDSA.
Если ваш поставщик программного обеспечения не может разрешить использование обычной конечной точки, вы можете использовать эту устаревшую конечную точку.http://ts.ssl.com/legacy
чтобы получить временную метку из модуля временных меток RSA. - Если подписание прошло успешно, вы должны увидеть следующий результат (неудачное подписание не приведет к выводу):
информация: AzureSignTool.Program [0] => Файл: test.exe Файл подписи test.exe Информация: AzureSignTool.Program [0] => Файл: test.exe Подпись для файла test.exe успешно завершена. info PS C: \ Users \ Aaron Russell \ Desktop>
- Подробности о новой цифровой подписи будут доступны в свойствах файла: