InnoSetup - сертификат подписи кода

Я только что купил сертификат подписи кода от Comodo. Я создал небольшую базу данных MS Access, которую хочу развернуть с установщиком Inno Setup. script работает отлично, но я совершенно не знаком с подписанием кода.

Как я могу подписать мой установочный файл? Нужно ли мне внешнее программное обеспечение для подписания сертификата или я могу сделать это из Inno Setup?

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

Ответ 1

Чтобы подписать исполняемый файл (установщик, созданный Inno Setup), просто создайте пакетный файл (.bat) и поместите в него этот контент:

"c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe" sign /f Installer_Wizard_Code_Signing_Certificate.pfx /p password123 /t http://timestamp.verisign.com/scripts/timstamp.dll MySetupFile.exe

где

"c:\Program Files (x86)\Microsoft SDK\Windows\v7.0A\Bin\signtool.exe" - это путь к утилите подписи Microsoft (часть Microsoft SDK)

Installer_Wizard_Code_Signing_Certificate.pfx - ваш сертификат

пароль123 - пароль для вашего сертификата

MySetupFile.exe - ваш файл настроек, который вы хотите подписать

Поместите все файлы в один каталог (сертификат, настроить для подписания и пакетный файл) и запустите пакетный файл. Signtool подписывает файл с сертификатом и проверяет действительность на официальном сервере.

(Вы можете использовать http://timestamp.verisign.com/scripts/timstamp.dll сервер, хотя у вас есть сертификат Comodo, это не имеет значения.)

Ответ 2

То, что вы делаете, довольно просто, попробуйте все

  1. Откройте Inno Setup и выберите Tools-> Configure Sign Tools The sign tool dialog
  2. Нажмите "Добавить.." и дайте ему имя, позвольте называть его MsSign, так как я использую signtool.exe от Microsoft, теперь у вас должно быть что-то вроде этого enter image description here
  3. Затем вас спросят о командной строке инструмента, который вы используете для подписи, так как я использую signtool.exe, который я буду использовать

signtool.exe sign/tr http://timestamp.digicert.com/td sha256/fd sha256/a $ p

Обратите внимание на $ p в конце, Inno Setup нужно это... Теперь у вас должно быть это, и обратите внимание, что я добавил путь к signtool.exe в мои переменные пути и что я использую сервер времени DigiCert для отметки времени моего подпись. enter image description here

  1. Теперь в сценарии добавьте следующий код в сегмент установки

    SignTool = MsSign $ f

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

это должно выглядеть так enter image description here

Когда вы посмотрите на сгенерированный EXE- файл, вы увидите цифровую подпись enter image description here

Теперь это работает для меня, потому что я подготовил свое хранилище подписей таким образом, чтобы командная строка могла получить подпись, и у меня есть только одна подпись кода, поэтому мне не нужно будет называть ее, ваши параметры могут отличаться от моих, и это нормально, пока, в конце концов, ваша установка работает и ваш код подписывается.

Надеюсь, что помог и помните, вам нужно, чтобы $ p в переменной

Ответ 3

После того, как вы загрузите и установите signtool.exe из Microsoft, укажите полный путь signtool.exe в команде средства подписи, если он не добавлен к переменным пути на шаге 3 предыдущего ответа: D:\GUI\signtool.exe sign/tr http://timestamp.digicert.com/td sha256/fd sha256/a $ p введите описание изображения здесь