InnoSetup - 代码签名证书

时间:2013-10-03 13:40:41

标签: inno-setup code-signing-certificate

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

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

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

3 个答案:

答案 0 :(得分: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证书,但没关系。)

答案 1 :(得分:14)

你做的很简单,试着跟随allong

  1. 打开Inno设置并选择工具 - >配置签名工具The sign tool dialog
  2. 点击“添加..”并为其命名,让我们称之为MsSign,因为我正在使用来自Microsoft的signtool.exe,您现在应该有这样的内容enter image description here
  3. 然后,系统会要求您提供用于签名的工具的命令行,因为我使用的是signtool.exe,我将使用
  4.   

    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

    2. 这一行,告诉编译器使用代码签名,它将使用我称为MsSign的变量,并将对安装程序生成的输出进行签名。

      它应该是这样的 enter image description here

      当您查看生成的EXE时,您将看到数字签名 enter image description here

      现在这对我有用,因为我已经准备好了我的签名存储,命令行可以获得签名,我只有一个代码签名,所以我不需要命名,你的参数可能不同于我的,只要最后,你的设置有效,你的代码就会被签名。

      希望能帮助并记住你需要变量

      中的 $ p

答案 2 :(得分:0)

一旦您从Microsoft下载并安装了signtool.exe,如果在上一个答案的第三步中未将signtool.exe的完整路径添加到签名工具的命令中,则将其放入签名工具的命令中:

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

enter image description here