生成证书
在Windows PowerShell 中执行
New-SelfSignedCertificate -Type CodeSigning -Subject "www.XXXXX.com" -FriendlyName "XXX" -CertStoreLocation "Cert:\LocalMachine\My"
-Type:指定证书类型, 这里是代码签名
-Subject:设置证书的主题,这里是网站的域名。
-FriendlyName:为证书设置一个友好的名称,便于在证书存储中识别和管理
-CertStoreLocation:指定证书存储的位置为本地计算机的个人存储。
示例:
使用证书
Win + R 输入mmc
点击
文件 --> 添加/删除管理单元 --> 证书 --> 添加
可以看到证书 --> 个人 --> 证书文件夹下 存在这个证书了
右键此证书 -->
所有任务 --> 导出 --> 选择是,导出私钥 --> 下一步
下一步
输入密码, 更改加密方式为:AES256-SHA256
选择一个目录 --> 输入自定义pfx文件名称 --> 下一步 --> 完成
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文件 --> 下一步 --> 下一步
输入密码
选择将所有的证书存放下列存储 --> 点击浏览 --> 选择受信任的根证书颁发机构 --> 确定
下一步 --> 完成
提示成功
再次验证Get-AuthenticodeSignature -FilePath "xxx.exe"