Electron打包签名一直报无效证书怎么办?

西门祎芮 阅读 58

用electron-builder打包应用时签名老是失败,提示certificate.p12 is invalid,明明证书路径和密码都检查过了没问题啊?

我按官方文档配置了win字段的certificate路径,还特意把.p12文件放在项目根目录,打包命令用了:


{
  "build": {
    "win": {
      "certificate": "./code-sign-certificate.p12",
      "password": "123456"
    }
  }

错误日志一直显示:


Error: Failed to sign file: ... signing-stop-on-error

试过用不同证书、重新生成p12文件,甚至用微软签名工具手动签名都不行,是不是证书格式有问题?或者需要额外配置什么?

我来解答 赞 18 收藏
二维码
手机扫码查看
2 条解答
慕容昕彤
遇到过同样的问题,折腾了好久发现是证书密码不对但electron-builder的报错太笼统。几个排查方向:

1. 先确认证书本身没问题,用openssl验证下:
openssl pkcs12 -in code-sign-certificate.p12 -nodes -passin pass:123456

如果报错就说明密码或文件确实有问题

2. electron-builder的路径配置建议用绝对路径,相对路径有时候抽风:
"certificate": "D:/project/code-sign-certificate.p12"


3. 证书可能缺少中间证书链,用signtool手动签名测试下:
signtool sign /f cert.p12 /p 123456 /t http://timestamp.digicert.com your.exe


4. 终极解决方案是换成用代码签名文件(.spc)和私钥(.pvk)组合,比p12稳定:
"certificateFile": "authenticode.spc",
"certificatePassword": "",
"certificateKeyFile": "authenticode.pvk"


最后吐槽下electron的签名报错信息真的该优化下,同一个错误能报十几种原因...
点赞
2026-03-07 21:29
Mr.文茹
Mr.文茹 Lv1
你这个问题大概率是证书本身有问题,p12格式虽然看着对,但可能导出的时候选项没选对。用下面这个命令重新导出一次试试,记得勾上“强加密”选项:

openssl pkcs12 -export -out code-sign-certificate.p12 -inkey privateKey.key -in certificate.crt


另外确认下是不是用了中文路径或者特殊字符的文件夹,electron-builder对这种路径支持不太好。差不多就行,别太折腾了。
点赞 5
2026-02-18 21:00