【问题标题】:InnoSetup - Code Signing CertificateInnoSetup - 代码签名证书
【发布时间】:2013-10-10 05:53:01
【问题描述】:

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

如何签署我的安装文件?我需要外部软件来签署证书还是可以在 Inno Setup 中进行?

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

【问题讨论】:

标签: inno-setup code-signing-certificate


【解决方案1】:

从微软下载并安装signtool.exe后,如果在上一个答案的第三步没有添加到路径变量中,请将signtool.exe的完整路径放入签名工具的命令中:

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

【讨论】:

    【解决方案2】:

    你做的很简单,跟着一起努力吧

    1. 打开 Inno Setup 并选择 Tools-> Configure Sign Tools
    2. 单击“添加..”并为其命名,我们将其命名为 MsSign,因为我正在使用来自 Microsoft 的 signtool.exe,您现在应该拥有类似 的内容
    3. 然后会询问您用于签名的工具的命令行,因为我使用的是 signtool.exe,所以我将使用

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

    注意最后的$p,Inno Setup 需要这个... 您现在应该有了这个,并注意我已经在我的路径变量中添加了 signtool.exe 的路径,并且我正在使用 DigiCert 的时间服务器来为我的签名添加时间戳。

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

      SignTool=MsSign $f

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

    它应该看起来像这样

    当您查看生成的 EXE 时,您会看到数字签名

    现在这对我有用,因为我已经以命令行可以获取签名的方式准备了我的签名存储,并且我只有一个代码签名签名,所以我不需要命名它,你的参数可能不同于我的是,这没关系,只要你的设置工作正常并且你的代码得到签名。

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

    【讨论】:

    • signtool 附带 Windows 驱动程序安装,请参阅第 2 点上的链接,然后在安装它后,您可以将位置添加到您的配置文件路径设置,然后登录并登录,您应该可以只需调用它,否则将路径放在第 3 步中
    • set PATH="C:\Program Files (x86)\Windows Kits\10\bin\x64";%PATH% 为我做了!谢谢
    • 您实际上不需要将 signtool.exe 添加到 PATH。由于它是一个没有依赖关系的小型可执行文件 (410 KB),因此您可以选择将其复制到构建环境中需要它的任何位置,并且它的工作方式与从它所在的位置运行它一样好安装在 Windows 上。
    【解决方案3】:

    要签署可执行文件(由 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证书,但没关系。)

    【讨论】:

    • 你为什么不建议 Inno Setup 的内部签名支持?第三次,here 是一个描述如何做到这一点的教程。它来自 Comodo 的经销商,所以他们应该知道他们在说什么。
    • @TLama 你的回答解决了我的问题。我按照说明进行了编译,没有任何错误。感谢所有人以及 Ksign 背后的人......它让一切变得如此简单。
    • @TLama 引用的链接已更改:certhelp.ksoftware.net/support/solutions/articles/…
    • 我的教程是独立的,不需要任何第三方软件。 (我尝试了 TLama 的教程并没有为我工作,所以我编写了自定义解决方案)。
    猜你喜欢
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 2014-01-25
    • 2014-03-24
    • 2015-10-19
    • 2011-04-02
    • 2010-09-20
    • 2010-12-01
    相关资源
    最近更新 更多