说明:使用本博文的前提条件是,用Inno Setup6.2.1对Pyinstaller打包的python对可执行文件exe做代码签名,签名工具用微软件SignTool,你已经将代码打包成可执行文件exe,现在是用Inno Setup6.2.1做安装包,以及给exe、及安装包exe、卸载exe做代码签名
一、准备工具
1、下载 下载 https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/
2、安装选如下
3、配置环境变量添加到path中(我用的windows10)SignTool sign /fd sha256 /a /f xx_signature.pfx /p 7W0d2S942DB0C82s D:\qq\main\My.exe
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、创建发行者证书
pvk2pfx -pvk xx_signature.pvk -pi 7W0d2S942DB0C82s -spc xx_signature.spc -pfx xx_signature.pfx -f
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的代码)
专注JAVA系统优化、系统结构调整、系统问题排查医治、系统升级、架构设计、SQL语句优化、小程序、APP、企业应用软件开发,请 + hekf888,欢迎关注,时常发布技术分享博文