electron-builder进行签名与公证

windows:

1.设置package.json的有关window打包的相关内容

   "win": {
      "icon": "build/icons/icon.ico",
      "target": [
        {
          "target": "nsis",
          "arch": [
            "w64",
            "ia32"
          ]
        }
      ],
      "verifyUpdateCodeSignature": false,
      "signingHashAlgorithms": [
        "sha256",
        "sha1"
      ],
      "signDlls": true,
      "rfc3161TimeStampServer": "http://timestamp.digicert.com",
      "certificateFile": "xxx.pfx",
      "certificatePassword": "xxxxxx"
    },        

主要参数说明:

 'arch:代表需要打包的位数,win64代表打包64位的,ia32代表打包32位的,最好分开打包,因为一起打包的话最后出来的包是正常开发包的两倍。

'signingHashAlgorithms':代表加密的方式,一般分为'sha256'与'sha1'两种方式,都进行加密即可。

'rfc3161TimeStampServer':代表时间戳,一般使用'http://timestamp.digicert.com'来进行时间戳的覆盖即可

'certificateFile':证书的地址,必须位pfx格式(如何导出会在第二步的时候进行讲解)

'certificatePassword':证书的私钥密码,这个在配置证书的时候进行设置(第二步进行讲解)

2.导出pfx格式的证书

windows的证书需要去有相关资质的商家进行购买,我是在数安时代购买的,现在买的证书都是以签名狗(类似与银行的u盘)的方式进行发放,确保了安全性的问题。在插上签名狗的时候,会自动下载一个证书管理工具软件,在上面可以可以修改密码,即上面第一步certificatePassword参数的值。

问题:

但是有个最大的问题就是,无法进行导出pfx证书,只能导出cer格式的不带私钥的证书。它可以对已经打包完的exe进行签名,很明显这对electron来说是不合适的。对打包完的exe进行签名,会导致无法升级的问题,所以需要在打包的时候就将证书打进去。

解决方法:

打开数安时代的软件(本地未插签名狗,如果插入,此地会出现购买的证书),右键证书,导出cer格式的证书,然后修改后缀名为pfx,如导出的为test.cer,修改后缀名为test.pfx,放到项目的根目录下面,第一步的certificateFile修改为'test.pfx'即可(当然,test只是个例子,名字自定义)

3.进行打包

这个时候,windows上的签名已经可以了,运行你的打包命令吧!

npm run build

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

 运行成功之后,在你的打包出来的exe上进行右击属性,即可看到签名成功:

 

macOS:

1.制作证书:

 

猜你喜欢

转载自www.cnblogs.com/mmykdbc/p/11468908.html