我从一位前同事那里继承了一个 ElectronJS 项目,他曾在我们收购的一家公司工作,但后来辞职并忘记了该项目的细节。 目前我们团队中没有人对这个项目一无所知。 我已经弄清楚如何将应用程序构建为未签名的 exe,但我不知道如何对其进行签名,而且我不愿意购买任何证书来进行实验,除非我对购买证书后该做什么有一个大致的了解。 我们的内部 wiki 说这个项目使用 electro-builder 来签署可执行文件。 我在这里找到了电子构建器代码签名文档:
https://www. Electronjs.org/docs/latest/tutorial/code-signing#windows
它说的是:
To sign an app on Windows, there are two types of certificates:
* EV Code Signing Certificate
* Code Signing Certificate
Both certificates work with auto-update. The regular (and often cheaper) Code Signing Certificate shows a warning during installation that goes away once enough users installed your application and you’ve built up trust. The EV Certificate has more trust and thus works immediately without any warnings. However, it is not possible to export the EV Certificate as it is bound to a physical USB dongle. Thus, you can’t export the certificate for signing code on a CI, such as AppVeyor.
If you are using an EV Certificate, you need to provide win.certificateSubjectName in your electron-builder configuration.
If you use Windows 7, please ensure that PowerShell is updated to version 3.0.
我不知道如何处理这些信息。 它似乎没有概述购买、下载和安装证书所需采取的任何步骤。 我们的 package.json 文件没有提及 .key、.pem 或 .crt 文件。 我希望这个配置文件包含我的计算机上的位置路径,电子构建器可以在其中找到我从 CA 下载的证书。 我在这里看到的唯一相关的东西是:
"build": {
"win": {
"target": [
{
"target": "nsis",
"arch": [
"x64"
]
}
],
"icon": "icons/winapp.ico",
"artifactName": "<the filename of the executable to be created>"
},
}
有人知道我应该在这里做什么吗? 你能指出我正确的方向吗? 此时我最好的猜测是,也许我们从证书颁发机构购买了 EV 证书加密狗,将其邮寄给我,我将其插入,然后运行命令来构建 exe,只要证书加密狗存在,它就会神奇地工作是在电脑里,但我不想为这个预感赌 300 美元。 感谢您提供的任何解释!
乍一看,代码签名基本上是为了确保我作为应用程序的潜在用户在计算机中获得的可执行文件不知道其间有任何类型的代码更改。为此,(因为我们谈论的是 Windows)Windows 操作系统需要能够进行一些验证。首先,它将查找本地证书(活动目录),然后在 Microsoft 代码签名证书存储中查找。 所以选择是:
我可能建议使用选项 2,以便在不下注的情况下进行测试,正如前面所说的。然后根据需要选择选项 1 或 3。
仅供参考,当配置应用程序安装程序以允许提升时,Windows Defender 将可以接受没有证书的情况。