目录
打包问题与数字签名
关于使用Inno Setup工具制作软件安装包的教程,网上的资料教程已经非常详细,本篇文章不再过多赘述,本篇文章主要记录Inno Setup打包使用过程中的一些使用问题,以及在Windows系统下,如何通过Inno Setup添加数字签名。
数字签名具体操作流程和细节
参考文章1: 用Inno Setup6.2.1对可执行文件exe做代码签名,打包成安装包,签名工具用微软件SignTool,本例以python之Pyinstaller打的exe为例.
参考文章2: 软件数字签名详细教程.
在介绍数字签名操作流程之前,我们需要先理一理数字签名需要什么工具,每个工具的先后步骤都是如何,然后才更好的去按步骤响应配置,实现数字签名成功。
【参考文章2】中关于数字签名的方式有详细介绍,但是篇幅过多,有些细节并未涉及。本篇文章主要采用命令行进行签名,所列举的签名工具为其而服务。
1.数字签名相关工具
- Makecert.exe: 用于创建X.509证书;
- cert2spc.exe: 创建发行者证书;
- certmgr.exe: 解决证书不受信任问题;
- pvk2pfx.exe: 导出pfx证书文件;
- signtool.exe: 实现软件签名。
注意:
1.关于以上工具的如何获取,之前在看其他人写的文章时,一直不知道如何获取。后面才意识到自己电脑已经安装过Visual Studio的部分插件,已经囊括了相关的工具。
2.以上数字签名的相关工具,可参考上述列举的【参考文章1】去获取,通过安装Visual Studio相关软件即可实现。
3.如果想非常简单轻松的去获取,通过此链接一样可以直接下载上述的相关工具,免去安装Visual Studio的麻烦。
数字签名工具:工具下载
2.数字签名详细操作流程,步步为营。
2.1 环境变量确认与文件路径确认。
如果已经安装了以上工具或者系统已经自带了,一般情况下可以在下面的地址中找到。如下地址是我电脑上的地址,大家的也八九不离十。
这里需要说明一点,我的电脑是64位系统,所以是x64。同样,我上述链接给出的下载文件,对应的也是x64。
C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64
在即将进行操作之前,我们还需要添加环境变量,这样一来,命令行操作过程中,这些工具将不会再受限于文件位置问题,而可以直接使用。
关于工具的使用,我并没有去像【参考文章1】和【参考文章2】直接使用C盘中的文件对应的工具。而是直接将数字签名的工具直接放置在了如下图E盘所示位置。
E:\SignPackTool

根据工具所放置的位置,为其添加对应的环境变量

而等待打包和数字签名的软件(非数字签名工具,而是我用QT开发的工具,并已经用QT打包好了,需等待数字签名完后,用Inno Setup进行打包数字签名),放置在如下所示的位置

2.2 数字签名操作开始
控制台操作(管理员身份运行)
2.2.1 CMD命令,进入目录
进入目录E:\UWELL_Pack,并在该目录下创建id_cert名称的文件夹。
cd /d E:\UWELL_Pack
mkdir id_cert
cd id_cert

原来的打包文件路径下存在一个新创建的文件夹

2.2.2 创建X.509证书
创建UWELL.pvk和UWELL.cer两个证书文件(如UWELL名称为自命名的文件名,可以为其他名字)。
Makecert -sv UWELL.pvk -r -n “CN=Shenzhen Uwell Technology Co. Ltd.” UWELL.cer
这里需要注意一点CN=Shenzhen Uwell Technology Co. Ltd.采用是英文名称,如果其中存在逗号字样,会直接失败,中文名称可以直接看【参考文章1】和【参考文章2】,只是中文替换英文,如
Makecert -sv UWELL.pvk -r -n “CN=成都XX某某科技有限公司” UWELL.cer


上述命令执行成功后,在id_cert文件夹下生成的文件。

输入如下密码3次,可也可以自己生成密码12345
2.2.3 创建发行者证书
执行以下指令,(如UWELL名称为自命名的文件名,可以为其他名字)
cert2spc UWELL.cer UWELL.spc
操作成功后返回成功回复,同时id_cred文件路径下又生成新的文件。


2.2.4 解决cert.spc证书不受信任
(UWELL名称为自命名的文件名,可以为其他名字)
该过程如果失败,则可能是未以管理员身份运行。
certmgr.exe -add -c UWELL.spc -s -r localMachine root

2.2.5 导出pfx证书文件。注意:12345是第一步输入的密码
(如UWELL名称为自命名的文件名,可以为其他名字)
pvk2pfx -pvk UWELL.pvk -pi 12345 -spc UWELL.spc -pfx UWELL.pfx -f

数字签名过程导出的pfx文件成功。

Inno Setup添加数字签名
在上述过程成功实现后,我们可以畅通无阻的进行接下来的操作。Inno Setup的打包的详细过程可以参考下面文章链接。
参考文章1: Inno setup Compiler 安装程序.
当然我也以自己的项目为主,进行了相关操作图片的列举。
1.按图索骥,一步步来










2.添加签名,大势已成

Sing_Tool名字可以自定义命名,但是后续添加的脚本中的名字则是需要你自定义命名的。

下图用SignTool进行数字签名, 其中E:\UWELL_Pack\id_cert\UWELL.pfx为你导出的pfx文件路径所在。
12345 为之前密码。其他的直接照搬就行。
SignTool sign /fd sha256 /a /f $qE:\UWELL_Pack\id_cert\UWELL.pfx$q /p 12345 /t http://timestamp.digicert.com $f

InnoSetup中需要添加如下内容
[Setup]
SignTool=Sign_Tool
SignedUninstaller=yes

针对打包后的exe文件出现文件版本显示0.0.0.0的问题。还需要下面一样添加相关的文件版本信息。
链接: 文件版本问题显示处理.
VersionInfoVersion={#MyAppVersion}

最后编译后打包得到的exe文件属性如下

2020

被折叠的 条评论
为什么被折叠?



