InnoSetup - 代码签名证书

问题描述 投票:14回答:3

我刚刚从Comodo购买了代码签名证书。我已经构建了一个小型MS Access数据库,我想用Inno Setup Installer进行部署。脚本运行正常但我对代码签名完全不熟悉。

如何签署我的安装文件?我是否需要外部软件来签署证书,或者我可以在Inno Setup中进行此操作吗?

我试图寻找类似问题的答案,但没有人能够告诉我我需要什么才能开始,以及如何去做。

inno-setup code-signing-certificate
3个回答
15
投票

你做的很简单,试着跟着

  1. 打开Inno Setup并选择Tools-> Configure Sign ToolsThe sign tool dialog
  2. 点击“添加..”并给它一个名字,让我们称之为MsSign,因为我正在使用来自Microsoft的signtool.exe,你现在应该有类似这样的东西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


14
投票

要签署可执行文件(由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 SDKs \ Windows \ v7.0A \ Bin \ signtool.exe”是Microsoft签名实用程序的路径(Microsoft SDK的一部分)

Installer_Wizard_Code_Signing_Certificate.pfx是您的证书

password123是证书的密码

MySetupFile.exe是您要签名的安装文件

将所有文件放在一个目录(证书,设置以签名和批处理文件)中并运行批处理文件。 Signtool使用证书对文件进行签名,并检查对官方服务器的有效性。

(你可以使用http://timestamp.verisign.com/scripts/timstamp.dll服务器,虽然你有Comodo证书,但没关系。)


0
投票

从Microsoft下载并安装signtool.exe后,如果未将signtool.exe的完整路径添加到签名工具的命令中,则将其添加到上一个答案的第3步中的路径变量中:

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

© www.soinside.com 2019 - 2024. All rights reserved.