InnoSetup - 代码签名证书

mtn*_*mtn 17 inno-setup code-signing-certificate

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

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

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

PPa*_*ann 17

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

  1. 打开Inno Setup并选择Tools-> Configure Sign Tools符号工具对话框
  2. 单击"添加.."并给它命名,让我们称之为MsSign,因为我使用的是Microsoft的 signtool.exe ,你现在应该有这样的东西在此输入图像描述
  3. 然后,系统会要求您提供用于签名的工具的命令行,因为我使用的是signtool.exe

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

注意最后的$ p,Inno Setup需要这个...你现在应该有这个,并注意我已经在我的路径变量中添加了signtool.exe的路径,并且我正在使用DigiCert的时间服务器为我设置时间戳签名.在此输入图像描述

  1. 在脚本中,您现在将以下代码添加到设置段

    SignTool = MsSign $ f

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

它看起来应该是这样的 在此输入图像描述

当您查看生成的EXE时,您将看到数字签名 在此输入图像描述

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

希望有帮助并记住你需要变量中的$ p


Sla*_*ppy 15

要签署可执行文件(由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
Run Code Online (Sandbox Code Playgroud)

哪里

"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证书,但没关系.)

  • 为什么不建议Inno Setup的内部签名支持?第三次,[`here`](http://blog.ksoftware.net/2011/07/how-to-automate-code-signing-with-innosetup-and-ksign/)是一个教程,描述了如何要做到这一点.它来自Comodo的经销商,因此他们应该知道他们在谈论什么. (10认同)
  • @TLama所指的链接已更改:http://certhelp.ksoftware.net/support/solutions/articles/17169-how-do-i-automate-code-signing-with-innosetup-and-ksign- (5认同)
  • http://revolution.screenstepslive.com/s/revolution/m/10695/l/95041-signing-installers-you-create-with-inno-setup (3认同)
  • @TLama你的答案解决了我的问题.我按照说明和编译顺利完成,没有任何错误.感谢大家和Ksign背后的家伙...它让一切变得如此简单. (2认同)
  • 我的教程是独立的,不需要任何第三方软件。(我尝试了 TLama 的教程,但对我不起作用,所以我编写了自定义解决方案)。 (2认同)