Electron.NET应用数字签名流程及Electron.Manifest.json配置问题咨询
Electron.NET Windows平台应用数字签名操作指引
前置准备
- 申请合法的Windows代码签名证书,优先选择EV级证书,签名后可直接绕过SmartScreen筛选器警告;普通OV级证书需要累计一定安装量后才会消除未知发布者警告
- 本地环境已安装
signtool.exe,该工具随Windows SDK或Visual Studio桌面开发组件自带,可直接在VS开发者命令行中调用 - 确保项目无签名状态下可正常执行
dotnet electronize build命令生成Windows安装包/便携包
Electron.Manifest.json 相关配置项
配置文件中windows节点下可直接添加签名相关字段,编译阶段会自动调用签名逻辑:
{ "build": { "win": { "sign": true, "certificateFile": "./你的证书文件.pfx", "certificatePassword": "你的证书密码", "publisherName": "你的企业/开发者官方名称", "requestedExecutionLevel": "asInvoker" } } }
注意:生产环境不要把证书密码硬编码在配置文件中,建议通过环境变量动态传入,避免证书泄露。
完整签名操作流程
方案1:编译阶段自动签名
- 将上述配置补充到
Electron.Manifest.json,替换证书路径、发布者名称为实际信息 - 执行打包命令:
dotnet electronize build /target win - 编译过程会自动调用signtool对生成的主程序exe、安装包、依赖dll进行签名,打包完成后可右键点击exe文件-属性-数字签名,验证签名是否生效
方案2:编译完成后手动签名
如果不想把证书信息存放在项目配置中,可在打包完成后单独签名:
- 先正常执行
dotnet electronize build /target win生成未签名的输出文件 - 打开VS开发者命令行,进入输出文件所在目录
- 执行签名命令:
signtool sign /f 你的证书.pfx /p 证书密码 /t http://timestamp.digicert.com /fd SHA256 "目标文件.exe"
- 命令中的时间戳地址可替换为你的证书颁发商提供的对应地址,必须添加时间戳参数,否则证书过期后签名会直接失效
- 建议对输出目录内所有exe、msi、dll格式文件都执行一遍签名,避免部分文件未签名触发安全警告
签名验证
右键点击已签名的exe文件,选择「属性」-「数字签名」,如果能看到你的签名信息且状态显示为正常,即代表签名生效。
内容的提问来源于stack exchange,提问作者richard_orchard
相关产品推荐
相关产品推荐

