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

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

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

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

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

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


person Mike Jablonski    schedule 02.02.2014    source источник


Ответы (2)


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

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

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

person Mike Jablonski    schedule 02.02.2014
comment
В InstallShield 2013 LE откройте проект установки. В шаге 6 «Подготовка к выпуску» дважды щелкните «Выпуски». В появившемся окне вам будет представлено древовидное представление, содержащее узел Builds/Express/SingleImage, на который ссылается ответ. - person roryWoods; 12.06.2014
comment
Обязательно подпишите как setup.exe, так и пакет установщика Windows, поскольку вы все равно получите неизвестного издателя, если подпишете только setup.exe. - person JasonPlutext; 15.12.2014

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

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

На случай, если они это снесут, вот важная часть:

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

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

Сейчас я изучаю возможность реализации этой работы. Если кто-то еще попробует это, сообщите нам о своих результатах.

person BuvinJ    schedule 04.03.2016