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
То, что вы делаете, довольно просто, попробуйте все
- Откройте Inno Setup и выберите Tools-> Configure Sign Tools
![The sign tool dialog]()
- Нажмите "Добавить.." и дайте ему имя, позвольте называть его MsSign, так как я использую signtool.exe от Microsoft, теперь у вас должно быть что-то вроде этого
![enter image description here]()
- Затем вас спросят о командной строке инструмента, который вы используете для подписи, так как я использую 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]()
-
Теперь в сценарии добавьте следующий код в сегмент установки
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 введите описание изображения здесь