我刚从 Comodo 购买了代码签名证书。 我建立了一个小的 MS Access 数据库,想要使用 Inno Setup Installer 部署它。 脚本可以正常运行,但我完全不懂代码签名。
我该如何对我的安装文件进行签名? 我需要外部软件来签名证书吗?还是可以在 Inno Setup 中完成?
我已经尝试搜索类似问题的答案,但没有一个能够向我展示我需要开始以及如何进行这一步骤。
我刚从 Comodo 购买了代码签名证书。 我建立了一个小的 MS Access 数据库,想要使用 Inno Setup Installer 部署它。 脚本可以正常运行,但我完全不懂代码签名。
我该如何对我的安装文件进行签名? 我需要外部软件来签名证书吗?还是可以在 Inno Setup 中完成?
我已经尝试搜索类似问题的答案,但没有一个能够向我展示我需要开始以及如何进行这一步骤。
请注意最后的$p,Inno Setup需要它...现在你应该有这个,注意我已经将signtool.exe的路径添加到我的路径变量中,并且我正在使用DigiCert的时间服务器来为我的签名加上时间戳。 在脚本中,现在将以下代码添加到安装程序段落中:signtool.exe sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a $p
希望能够帮到您,记得在变量中使用$p
要签署可执行文件(由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 SDK 的一部分)
Installer_Wizard_Code_Signing_Certificate.pfx 是您的证书
password123 是您的证书密码
MySetupFile.exe 是您想要签名的安装程序文件
将所有文件放在一个目录中(证书、待签名的安装程序和批处理文件),然后运行批处理文件。 Signtool 使用证书对文件进行签名,并检查其有效性是否符合官方服务器的要求。
(即使您使用 Comodo 证书,也可以使用 http://timestamp.verisign.com/scripts/timstamp.dll 服务器。这没有关系。)
如果您还没有将 signtool.exe
添加到系统路径变量中,在下载和安装了来自 Microsoft 的 signtool.exe
后,将其完整路径添加到签名工具的命令中:
这是上一个回答中第三步的补充。
原始答案:Original Answer
D:\GUI\signtool.exe sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a $p
博客),这个可以用:http://support.ksoftware.net/support/solutions/articles/17169-how-do-i-automate-code-signing-with-innosetup-and-ksign。 - SlowLearner