用Inno Setup6.2.1对可执行文件exe做代码签名,打包成安装包,签名工具用微软件SignTool,本例以python之Pyinstaller打的exe为例

该文详细介绍了如何使用VisualC++BuildTools创建X.509证书,然后通过Makecert和Cert2spc命令生成证书文件。接着,利用pvk2pfx导出PFX证书,并使用SignTool对EXE文件进行签名。此外,文章还展示了如何在InnoSetup中配置签名工具mysigntool,以便在打包过程中为安装包和卸载程序添加签名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:使用本博文的前提条件是,你已经将代码打包成可执行文件exe,现在是用Inno Setup6.2.1做安装包,以及给exe、及安装包exe、卸载exe做代码签名
一、准备工具

1、下载 下载 https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/

截下面截图安装

2、安装选如下

3、配置环境变量添加到path中(我用的windows10)

C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64

4、CMD命令,进入目录

cd D:\qq
mkdir cert
cd cert
二、开始签名了

1、创建X.509证书

Makecert -sv xx_signature.pvk -r -n "CN=成都XX某某科技有限公司" xx_signature.cer

输入如下密码3次,可也可以自己生成密码
7W0d2S942DB0C82s
2、创建发行者证书

Cert2spc xx_signature.cer xx_signature.spc

3、导出pfx证书

pvk2pfx -pvk xx_signature.pvk -pi 7W0d2S942DB0C82s -spc xx_signature.spc -pfx xx_signature.pfx -f

4、软件签名(直接给exe加签名,如果让inno setup给exe签名,跳过此项,直接看下面第三点)

SignTool sign /fd sha256 /a /f xx_signature.pfx /p 7W0d2S942DB0C82s D:\qq\main\My.exe

键入时间缀

signtool timestamp /t http://timestamp.digicert.com D:\qq\main\My.exe
三、inno setup打包并配置给安装包及卸载的exe加签名(原执行My.exe不会加签名,自己安装inno setup 6.2.1版本)

1、点击菜单【Tools】》【Configure Sign Tool】    
    输入Name of Sign tool的值为:mysigntool
    Command of Sign Tool的值为:

SignTool sign /fd sha256 /a /f $qD:/qq/cert/xx_signature.pfx$q /p 7W0d2S942DB0C82s /t http://timestamp.digicert.com $f

2、并在代码的[Setup]中加入
  

 [Setup]
 SignTool=mysigntool
 SignedUninstaller=yes

3、如果想要对原My.exe直接签名,不使用上面第4点命令行直接对My.exe签名,就在inno setup代码中加入
 

   [Files]
   Source: "{#MySourcePath}{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion signonce
   Source: "{#MySourcePath}*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

4、然后点击如下按钮,就可以对安装包、原My.exe,以及安装包安装之后里面的卸载可执行文件做数字签名了(前提是你已经编写好inno setup的代码)

四、innoSetup打包文件,模板

五、下载地址

“     https://pan.baidu.com/s/1suNmyHFU5nWu44Ifoeg_uw?pwd=bd44         ”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值