Electron打包(四)——electronr-builder打包windows进行签名

在Windows系统中,如果程序没有代码签名证书,或者代码签名授信级别较低时,系统同样会将其列为可信程序,只是当用户运行该应用时,系统会显示安全提示。

  1. 设置package.json的有关window打包的相关内容
"win": {
      "icon": "build/icons/icon.ico",
      "target": [
        "nsis",
        "zip"
      ],
      "requestedExecutionLevel":"highestAvailable",
      "verifyUpdateCodeSignature": false,
      "signingHashAlgorithms": [
        "sha1"
      ],
      "signDlls": true,
      "rfc3161TimeStampServer": "http://timestamp.comodoca.com/authenticode",
      "certificateFile": "xxx.pfx",
      "certificatePassword": "xxxxxx"
    }, 

配置参数说明:

  • 'verifyUpdateCodeSignature': 是否需要验证签名

  • 'signingHashAlgorithms':代表加密的方式,一般分为'sha256'与'sha1'两种方式:

    • sha1对应时间戳 http://timestamp.comodoca.com/authenticode
    • sha256对应时间戳 http://timestamp.comodoca.com?td=sha256
  • 'signDlls': dll文件是否签名

  • 'rfc3161TimeStampServer':代表时间戳

  • 'certificateFile':证书地址,必须是pfx格式

  • 'certificatePassword': 证书的私钥密码

2.导出pfx格式的证书

windows的证书需要去有相关资质的商家进行购买,现在买的证书都是以签名狗(类似与银行的u盘)的方式进行发放,确保了安全性的问题。

(1)在插上签名狗的时候,会自动下载一个证书管理工具软件,在上面可以可以修改密码,即上面第一步certificatePassword参数的值。

(2)无法进行导出pfx证书,只能导出cer格式的不带私钥的证书。
问题:cer格式可以对已经打包完的exe进行签名,但在electron中对打包完的exe进行签名,会导致无法升级的问题,所以需要在打包的时候就将证书打进去。

解决方法:导出cer格式的证书,然后修改后缀名为pfx,如test.cer修改为test.pfx,放到项目的根目录下面,即第一步certificateFile参数的值。

  1. 打包配置
    (1)在package.json文件中配置:
    "build": "cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder"
    (2)运行命令
    npm run build,生成打包后的程序及安装包文件。

4.打包后的exe,右键属性,查看数字签名


签名.jpg

你可能感兴趣的:(Electron打包(四)——electronr-builder打包windows进行签名)