2013-10-03 128 views
8

我刚刚从Comodo购买了代码签名证书。我已经构建了一个小型MS Access数据库,我想使用Inno Setup Installer进行部署。脚本运行良好,但我对代码签名完全陌生。InnoSetup - 代码签名证书

我该如何去签署我的安装文件?我需要一个外部软件来签署证书吗,还是我可以从Inno Setup中完成?

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

+1

例如['这tutorial'(HTTP://blog.ksoftware .net/2011/07/how-to-automate-code-signing-with-innosetup-and-ksign /)可能会帮助您完成第一步。 – TLama

+2

当您回答时,您应该将其作为答案发布。 :) – Miral

+0

@TLama链接已死(〜博客〜)这工作:http://support.ksoftware.net/support/solutions/articles/17169-how-do-i-automate-code-signing-with-innosetup- and-ksign- – SlowLearner

回答

10

要注册的可执行文件(由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文件( 86)\微软的SDK \的Windows \ v7.0A \ BIN \ signtool.exe”是路径微软签名实用微软的SDK(部分)

Installer_Wizard_Code_Signing_Certificate.pfx是你的证书

password123是密码证书

MySetupFile.exe是要签署

把所有的文件在一个目录(证书的安装文件,安装程序签署,和批处理文件)并运行批处理文件。 Signtool用证书签署文件并检查官方服务器的有效性。

你要做的很简单(可以使用http://timestamp.verisign.com/scripts/timstamp.dll服务器虽然你有魔岛证书,也没关系。)

+9

你为什么不建议Inno Setup的内部签名支持?第三次,['here'](http://blog.ksoftware.net/2011/07/how-to-automate-code-signing-with-innosetup-and-ksign/)是一个教程,它描述了如何要做到这一点。它来自Comodo的经销商,所以他们应该知道他们在谈论什么。 – TLama

+2

@TLama你的答案解决了我的问题。我遵循指示和编辑文本没有任何单一的错误。感谢所有人以及Ksign背后的人们......它使一切变得如此简单。 – mtn

+1

http://revolution.screenstepslive.com/s/revolution/m/10695/l/95041-signing-installers-you-create-with-inno-setup –

0

,试图走allong

  1. 打开Inno Setup的选择工具 - >配置标志工具The sign tool dialog
  2. 单击“添加..”并为其命名,我们将其称为MsSign,因为我使用Microsoft中的signtool.exe,现在应该有类似这样的东西enter image description here
  3. 您被问及为您使用的签名,因为我使用signtool.exe工具的命令行我会用

signtool.exe签署/ 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在变量

    编码快乐

    沃尔特