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

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

截下面截图安装

用Inno Setup6.2.1对Pyinstaller打包的python可执行文件exe做代码签名,签名工具用微软件SignTool_代码签名

2、安装选如下

用Inno Setup6.2.1对Pyinstaller打包的python可执行文件exe做代码签名,签名工具用微软件SignTool_Pyinstaller_02

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

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

4、CMD命令,进入目录

cd D:\qq
mkdir cert
cd cert
  • 1.
  • 2.
  • 3.
二、开始签名了

1、创建X.509证书

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

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

Cert2spc xx_signature.cer xx_signature.spc
  • 1.

3、导出pfx证书

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

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

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

键入时间缀

signtool timestamp /t http://timestamp.digicert.com D:\qq\main\My.exe
  • 1.
三、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
  • 1.

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

[Setup]
 SignTool=mysigntool
 SignedUninstaller=yes
  • 1.
  • 2.
  • 3.

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
  • 1.
  • 2.
  • 3.

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

用Inno Setup6.2.1对Pyinstaller打包的python可执行文件exe做代码签名,签名工具用微软件SignTool_SignTool_03