欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Electron使用electron-builder打包windows时如何签名

程序员文章站 2022-03-03 22:39:38
...

windows打包基本配置:

"build": {
	...
	"win": {
      "icon": "{path}/xxx.ico", // ico图标地址
      "artifactName": "{appName}-win-${version}.${ext}", // 打包后的app名称 "名称-类型-版本.后缀"
      "target": [ // 打包类型
        "msi",
        "zip"
      ],
      "extraResources": [ //从本地复制的文件
        {
          "from": "resources/xxx",
          "to": "xxx"
        }
      ],
      "requestedExecutionLevel": "highestAvailable", // 权限
      "verifyUpdateCodeSignature": false, 
      "signingHashAlgorithms": [ // 代表加密的方式,一般分为'sha256'与'sha1'两种方式,都进行加密即可
        "sha256"
      ],
      "signDlls": true, // dll文件是否签名
      "rfc3161TimeStampServer":"http://timestamp.comodoca.com/rfc3161", // 时间戳
      "certificateFile": "xxx.pfx", // 证书的地址,必须位pfx格式
      "certificatePassword": "xxxxx" // 证书的私钥密码
   },
   ...
}

当签名时,提示时间戳服务请求超时或者错误时,可以更换为以下时间戳服务地址:

"rfc3161TimeStampServer":
	"http://timestamp.globalsign.com/scripts/timestamp.dll"
	"http://timestamp.digicert.com"
	"http://timestamp.comodoca.com/rfc3161"
	"http://sha256timestamp.ws.symantec.com/sha256/timestamp"

当无法进行导出pfx证书,只能导出cer格式的不带私钥的证书,对electron来说是不行的。若要对打包完的exe进行签名,就需要在打包的时候就将证书打进去。

解决方法:
将导出的cer格式证书,后缀名修改为pfx,将证书放到项目目录下,并修改"certificateFile"为保存的pfx文件

这个时候就可以进行打包了,由于我们导出的是不带私钥的pfx证书,所以在打包过程中会弹出弹窗提示你需要输入密码,输入你在第二步"certificatePassword"设置的密码即可。全程中不能拔下来你的签名狗,不然签名会断开。