Skip to content

electron windows 应用签名

一、证书名称

Windows EV 代码签名证书(EV Code Signing Certificate),全称是 Extended Validation Code Signing Certificate,中文一般叫 "扩展验证代码签名证书"。

二、购买渠道

国内可以在腾讯云购买,当然建议你货比三家,选择性价比高的,腾讯云 EV 证书相关文档:https://cloud.tencent.com/product/csc

三、什么是 EV 代码签名证书

Windows EV 代码签名证书(EV Code Signing Certificate),全称是 Extended Validation Code Signing Certificate,中文一般叫 "扩展验证代码签名证书"。它是微软和证书颁发机构(CA)一起推出的一种更高级别的数字签名证书,主要用来:

  1. 给可执行程序(如 .exe、.msi、.dll 文件)或者驱动程序(.sys 文件)进行签名。 保证软件的来源可信,防止被篡改。
  2. 让签名的软件在 Windows 系统中不会弹出难看的红色警告。
  3. 在 Windows 10/11 系统中,还能直接通过 SmartScreen 信誉校验,避免提示“未知发布者”的警告。

相比普通代码签名证书(Standard Code Signing Certificate),EV 证书有这些特点:

  1. 更高的验证要求:申请时需要公司提供更多的资料,比如营业执照、电话、公司地址,并且经过严格的人工审核。
  2. 必须使用硬件加密设备(比如 USB 加密狗或者 HSM 设备)来存储私钥,防止私钥被盗。
  3. 立即建立 SmartScreen 信任:普通证书签名的软件需要积累用户下载量才能被 SmartScreen 信任,而 EV 证书基本上是直接信任。

四、用 EV 证书签一个 .exe 文件的流程

EV 代码签名证书签一个.exe文件的完整流程

1. 前提准备

  • 有一张 EV 代码签名证书(比如 Digicert、Sectigo、GlobalSign 这些大 CA 颁发的)
  • 证书是存在一个硬件设备里(通常是 CA 发给你的 USB Key,插在电脑上)
  • 安装好 SignTool 工具(Windows SDK 里有,或者你也可以用别的代码签名工具)
  • 准备好你要签名的 .exe 文件

2. 签名流程步骤

第 1 步:插入加密 Key
把 CA 给你的硬件 USB 插入电脑,保证设备已经安装好驱动,系统能识别出证书。

第 2 步:确认 SignTool 已经安装
打开命令行,输入:

bash
signtool

如果有响应,说明安装好了。如果没装,需要安装 Windows SDK(里面有 SignTool)。

第 3 步:签名命令 基本签名命令长这样:

bash
signtool sign /fd SHA256 /a /tr http://timestamp.digicert.com /td SHA256 /v "你的程序.exe"

解释一下参数:

  • /fd SHA256:指定文件摘要算法(一般都是 SHA256)
  • /a:自动选择本地证书(通常如果只有一张 EV 证书,没问题)
  • /tr:时间戳服务器地址(不同 CA 有不同的 URL,比如 DigiCert 用 http://timestamp.digicert.com
  • /td SHA256:时间戳摘要算法
  • /v:显示详细输出(方便看有没有出错)
  • "你的程序.exe":就是你要签的可执行文件路径

常见补充
如果机器上装了很多证书,可以明确指定证书,比如加 /sha1 参数来指定使用哪个证书的指纹。

第 4 步:检查签名是否成功 签完后,可以用这个命令检查一下:

bash
signtool verify /pa /v "你的程序.exe"

如果看到“Successfully verified”,就搞定了。

第 5 步(可选):双击测试一下 自己双击打开 .exe 文件,看看弹出的窗口,是显示绿色的"已验证发布者",不是“未知发布者”,那就是成功了!


3. 注意事项

  • EV 证书是必须插着硬件 Key的,签名过程中拔掉会失败。
  • Windows 10/11 对驱动程序.sys文件)要求更高,还需要微软 WHQL 签名,不止代码签名。
  • 有些杀毒软件可能会拦截新签名的软件,需要积累一点安装量。