Как добавить цифровой сертификат в программу установки SingleImage Install Shield

У меня есть программа установки, созданная с использованием ограниченной версии Install Shield в Visual Studio 2012.

У меня есть цифровой сертификат, который я хочу добавить в программу установки.

Я хотел бы использовать функцию SingleImage Install Shield для создания и доставки одного установочного файла (например, setup.exe) моим клиентам. Кажется, однако, что я должен прикрепить цифровой сертификат к MSI-файлу, который встроен в setup.exe, с помощью Install Shield.

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

Могу ли я получить доступ к MSI-файлу, чтобы добавить к нему цифровой сертификат? Если так, то как?

2 ответа

Решение

Я собираюсь ответить на свой вопрос. После публикации моего вопроса я обнаружил, что ограниченная версия Install Shield в Visual Studio 2012 может быть настроена для подписи программы установки (если у вас есть соответствующий цифровой сертификат).

Это находится в: Builds/Express/SingleImage. Есть вкладка под названием "Подписание". Введите путь / имя файла для файла цифрового сертификата, пароль сертификата и укажите, какие выходные файлы вы хотите подписать. Install Shield затем подписывает программу установки после сборки.

Мои извинения за то, что задали этот вопрос слишком рано. Я должен был сделать больше исследований в первую очередь.

Версии InstallShield до IS 2015 не поддерживают сертификаты SHA-256. Таким образом, хотя ответ Майка верен, он не приносит никакой пользы без нового IS, поскольку Microsoft требует SHA-256 с 1 января 2016 года.

Но... Я раскрыл немного секрета об этом, прежде чем они должны были знать, что они делали. Смотрите эту тему на форуме IS.

В случае, если они снимают это, вот важная часть:

"Если вам нужна такая подпись немедленно, вы можете либо подписать файлы самостоятельно позже, либо создать оболочку для signtool.exe, которая перехватывает аргументы командной строки, которые мы передаем в \System\signtool.exe, и вместо этого делает что-то другое."

Итак, как сказал Майк, вы не можете просто подписать внешний exe-файл, но, заменив их signtool.exe, вы также сможете подписать внутренний msi.

Я сейчас пытаюсь реализовать эту работу. Если кто-то попробует это, дайте нам знать ваши результаты.

Другие вопросы по тегам