Electron-builder 数字证书PFX

580 阅读2分钟

生成证书

在Windows PowerShell 中执行

New-SelfSignedCertificate -Type CodeSigning -Subject "www.XXXXX.com" -FriendlyName "XXX" -CertStoreLocation "Cert:\LocalMachine\My" 

-Type:指定证书类型,  这里是代码签名

-Subject:设置证书的主题,这里是网站的域名。

-FriendlyName:为证书设置一个友好的名称,便于在证书存储中识别和管理

-CertStoreLocation:指定证书存储的位置为本地计算机的个人存储。

示例:

image.png

使用证书

Win + R 输入mmc  image.png 点击  文件 --> 添加/删除管理单元  --> 证书  --> 添加

image.png

可以看到证书 -->  个人  -->  证书文件夹下 存在这个证书了 1715593677950.png 右键此证书  --> 所有任务  -->  导出  --> 选择是,导出私钥 --> 下一步 1715593883583.png

下一步

image.png

输入密码, 更改加密方式为:AES256-SHA256 1715594040525.png

选择一个目录 --> 输入自定义pfx文件名称  --> 下一步  -->  完成

1715594180477.png

Electron打包配置

"win": {
    "target": [
      "nsis"
    ],
    "verifyUpdateCodeSignature": false,
    "signingHashAlgorithms": [
      "sha256"
    ],
    "signDlls": false,
    "certificateFile": "D:\xxx.pfx",
    "certificatePassword": 生成时输入的密码
  },

配置完成后,将electron应用执行打包

✓ built in 6.72s
  • electron-builder  version=24.13.3 os=10.0.23531
  • loaded configuration  file=package.json ("build" field)
  • writing effective config  file=dist\builder-effective-config.yaml
  • packaging       platform=win32 arch=x64 electron=28.3.0 appOutDir=dist\win-unpacked
  • signing         file=dist\win-unpacked\xxx.exe certificateFile=C:\path\to\xxx.pfx
  • building        target=nsis file=dist\xxx Setup 1.0.0.exe archs=x64 oneClick=false perMachine=false
  • signing         file=dist\win-unpacked\resources\elevate.exe certificateFile=C:\path\to\xxx.pfx
  • signing NSIS uninstaller  file=dist__uninstaller-nsis-xxx.exe certificateFile=C:\path\to\xxx.pfx
  • signing         file=dist\xxx Setup 1.0.0.exe certificateFile=C:\path\to\xxx.pfx
  • building block map  blockMapFile=dist\xxx Setup 1.0.0.exe.blockmap
Done in 43.48s.

验证签名是否成功

在Windows PowerShell 中执行

Get-AuthenticodeSignature -FilePath '打包后的安装包或安装好的程序路径.exe' 

示例

PS G:> Get-AuthenticodeSignature -FilePath "G:\dist\xxx Setup 1.0.0.exe"


SignerCertificate                          Status                  Path
-----------------                          ------                  ---
CD0406B3024A4A62C39191EB4BC0319A22060B55      Valid                  xx.exe                           

当Status字段为Valid时证明签名成功!

如果Status提示失败

找到导出的pdx文件 --> 下一步 --> 下一步

image.png

输入密码

image.png

选择将所有的证书存放下列存储 --> 点击浏览 --> 选择受信任的根证书颁发机构 --> 确定
image.png

下一步 --> 完成

image.png

提示成功

image.png

再次验证Get-AuthenticodeSignature -FilePath "xxx.exe"