How to sign an installer — различия между версиями
EElagina (обсуждение | вклад) (Новая страница: «Category:SysWatch - Использование ==Подписание файла сертификатом== Для подписи файла сертифик…») |
(нет различий)
|
Версия 16:24, 28 февраля 2020
Подписание файла сертификатом
Для подписи файла сертификатом (для примера возьмём SFX-архив) необходима утилита SignTool (Windows), которая находится в комплекте Windows SDK. Для данного примера был использован Windows SDK 7.0.
ВАЖНО! Чтобы подписанный файл запускался как установщик, необходимо, чтобы название файла начиналось с «Setup…» или «Install…» (признак установщика). В случае Windows XP возможно добавление атрибута «Install» либо «Setup» файлу-установщику (правая кнопка мышки-свойства-закладка «Описание»).
- Устанавливаем Windows SDK 7.0 (среди компонентов необходимо обязательно отметить .NET developer tools).
- Нажмите кнопку Пуск, выберите Все программы, Microsoft Windows SDK <версия> и наконец SDK Command Prompt или CMD Shell.
- В открывшемся окне вписываем комманду:
- signtool sign /f MyCert.pfx /p MyPassword MyFile.exe
«MyCert.pfx» - путь к Вашему сертификату формата PFX
«MyPassword» - Ваш пароль к данному сертификату
«MyFile.exe» - файл, который должен быть подписан
На данном скриншоте продемонстрировано, как это выглядит в CMD Shell Windows SDK 7.0
В результате проделанных действий CMD Shell выведет строку «Done Adding Additional Store» - это означает, что сертификат успешно добавлен. В свойствах архива это будет выглядеть следующим образом:
Также необходимо добавить сертификат в хранилище сертификатов windows на устройстве.
Для того, чтобы не устанавливать «вручную» сертификаты на каждом устройстве, в пакет установки включить утилиту сertutil.exe (от Microsoft) и сертификат (*.cer).
Командой утилиты addstore поместить сертификат в хранилище сертификатов windows.
Утилита предоставляется вместе с письмом, содержащим данный документ(заархивирована, zik заменить zip). Запросить утилиту можно по адресу support@safensoft.com Подсказки по утилите можно просмотреть из командной строки стандартным /?