【Electron】在Windows上对代码进行签名

0. 背景

Electron 的这篇文档讲解了有关代码签名相关的事项,然而并没有说明如何获取其例子中所用到的 cert.pfx 文件。

1. 方法

《如何创建应用包签名证书》这篇指南讲解了签名的步骤,然而文中还是有些小问题。

1.1 问题一:MakeCert.exe 已弃用

MakeCert.exe 已弃用。有关创建证书的最新指南,请参阅为包签名创建证书

尽管 MakeCert.exe 已弃用,依然可以使用文件搜索工具在系统中搜到此文件,可拷贝出来正常使用。

用同样的方式也可以找到指南中所需要用到的 Pvk2Pfx.exe 文件。

1.2 问题二:命令无法使用

上述指南所提供的有关 MakeCert 工具的命令无法直接使用。

MakeCert 工具的用法可参考:MakeCert - Windows drivers | Microsoft Learn

Pvk2Pfx 工具的用法可参考:Pvk2Pfx - Windows drivers | Microsoft Learn

1.3 问题三:缺少相关文件

使用 MakeCert 指南中的示例命令,仅会生成一个 .cer 文件。然而,使用 Pvk2Pfx 工具还需要一个 .pvk 文件。

该文件可以在使用 MakeCert 工具时添加 -sv 参数并指定文件名来生成。

添加此参数后,将会出现两个需要操作的弹窗。分别输入所需的密码即可。

创建私钥密码

输入私钥密码

2. 总结

简而言之,要对 Electron 应用进行代码签名,可以使用 MakeCert 和 Pvk2Pfx 两个工具。

首先,可参考以下命令使用 MakeCert 工具得到 .pvk.cer 文件:

MakeCert -r -pe -ss PrivateCertStore -n "CN=Contoso.com(Test)" -sv MyKey.pvk testcert.cer

然后,可参考以下命令使用 Pvk2Pfx 工具,即可得到代码签名证书文件 cert.pfx

pvk2pfx -pvk MyKey.pvk -pi sample_password -spc testcert.cer -pfx cert.pfx -f