Windows应用开发人员的代码签名选项

如果通过 Microsoft Store 将应用发布为 MSIX 包,则代码签名是免费的,并且会自动为你处理 — Microsoft认证后重新对包重新签名,并且无需购买或管理证书。 如果通过应用商店发布MSI/EXE 安装程序,则您需负责在提交之前对安装程序进行 Authenticode 签名。 本文中的其他内容适用于分发在Microsoft Store之外的应用。

一目了然地比较

选项 Cost 可用性 SmartScreen 行为 商店适用 最适用于
Microsoft Store (MSIX) — 商店重新签署您的软件包 免费 全球 ✅ 无警告 ✅ 是的 建议用于大多数新应用
Microsoft Store (MSI/EXE 安装程序) — 发布者必须签名 证书链接到 受信任的根计划 CA (因 CA 而异) 全球 ✅ 在 Microsoft Store 安装期间不会出现 SmartScreen 提示(UAC 可能仍然会显示) ✅ 是的 通过 MSI/EXE 安装程序路径提交的现有 Win32 应用
Azure 工件签名(以前称为可信签名) ~9.99 美元/月 组织:美国、加拿大、欧盟、英国。 个人:仅限美国和加拿大 ⚠️ 声誉随着时间的推移而建立;预计会出现初始警告 ❌ 否 建议用于非商店渠道分发
OV 证书 (来自 CA,如 DigiCert、Sectigo) $150–300/year 全球 ️ 与 Azure 构件签名相同,信誉会随着时间逐渐建立 ❌ 否 无法使用Azure项目签名或首选传统 CA 的开发人员
EV 证书 每年400美元以上 全球 ⚠️ 与自 2024 年以来的 OV 相同 — 不再即时绕过 ❌ 否 不再特别推荐用于 SmartScreen 绕过
自签名证书 免费 ❌ 阻止公共用户的安装 ❌ 否 仅用于开发/测试或具有管理证书信任的企业
无签名 免费 ❌ 强大的SmartScreen阻止功能;企业可能会完全阻止 ❌ 否 不建议用于公共分发

Microsoft Store — MSIX 提交:无需签名

通过 Microsoft Store 发布 MSIX 包是大多数Windows应用的建议分发路径。 Microsoft自动重新对程序包进行签名,这意味着用户永远不会看到 SmartScreen 警告,也无需购买或续订证书。

注释

如果要将 Win32 MSI 或 EXE 安装程序提交到应用商店(而不是 MSIX 包),Microsoft不会重新对安装程序进行签名。 安装程序及其 PE 文件必须使用链接到 Microsoft 受信任的根计划中的 CA 的证书进行签名 - 不接受自签名证书。 请参阅 MSI/EXE 的应用包要求

storedeveloper.microsoft.com 创建免费开发人员帐户。 注册后,使用 合作伙伴中心 提交应用并管理其列表。

将应用发布到 Microsoft Store

Azure项目签名(以前受信任的签名)是Microsoft推荐的代码签名服务,适用于在应用商店外部分发应用的开发人员。

关键详细信息:

  • 成本: 大约 9.99 美元/月 - 明显低于传统的 OV 或 EV 证书
  • 身份验证: Microsoft 会在颁发证书之前验证您的组织或个人身份,验证过程可能需要几个工作日。
  • 不需要硬件令牌:签名直接与 CI/CD 管道(GitHub Actions、Azure DevOps和其他管道)集成 - 不需要物理 USB 令牌
  • SmartScreen 行为: 与 OV 证书相同的信誉生成模型 - 新文件会显示 SmartScreen 警告,直到累积足够的下载历史记录。 Azure 工件签名提供即时 SmartScreen 信任。

重要

地理范围: Azure Artifact Signing 可供美国、加拿大、欧盟和英国的组织使用。 个人开发人员目前仅限于美国和加拿大。 如果你是这些区域之外的单个开发人员,请参阅下面的 OV 证书

Azure项目签名文档
使用 SignTool 对 MSIX 包进行签名

OV 证书 - 传统 CA 选项

来自证书颁发机构(CA)(例如 DigiCert、Sectigo 或 GlobalSign)的组织验证(OV)证书是代码签名的一个成熟选项。 在以下情况下,它们是正确的选择:

  • 您位于美国、加拿大、欧盟或英国以外(组织):或在美国或加拿大以外(个别开发人员),不能使用Azure项目签名
  • 你的组织已经与特定 CA 建立了关系
  • 企业客户需要来自特定 CA 的证书

关键详细信息:

  • 成本: 通常为 150-300 美元/年,具体取决于 CA 和证书层
  • 标识验证: CA 在颁发证书之前验证组织的法律身份;允许几个工作日
  • HSM 要求: 截至 2023 年 6 月,CA/浏览器论坛要求将 OV 证书的私钥存储在硬件安全模块(HSM)或硬件令牌上。 大多数 CA 都提供兼容的 USB 令牌或云 HSM 选项。
  • SmartScreen 行为:等效于Azure人工制品签名 — 每个文件的哈希值信誉会随时间累积。 请预期 SmartScreen 会对新文件进行提示。

OV 证书是一个经过验证的选项,在功能上等同于Azure用于 SmartScreen 的项目签名。 如果你在美国或加拿大(或欧盟或英国的组织),Azure Artifact Signing 通常更具成本效益,并与自动化构建流水线更顺利地集成。

扩展验证(EV)证书之前在首次下载时完全绕过了 SmartScreen,使其成为没有声誉的新应用程序的首选。 该行为在 2024 年被删除。 EV 签名的文件现在通过与 OV 证书相同的信誉生成过程。

这意味着:

  • 如果已有 EV 证书,则它仍然有效且功能正常, 用于签名 — 一直使用它,直到证书过期
  • EV 证书仍然需要更严格的标识验证,这可能对企业采购或其他信任上下文很重要
  • 仅支付 EV 保费 ($400+/年) 以避免 SmartScreen 警告 不再合理 — 你仍将看到与 OV 证书相同的警告

详细了解 SmartScreen 信誉对于开发人员的影响 ,包括信誉如何建立以及用户看到的内容。

自签名证书 - 仅用于开发和测试

默认情况下,Windows不信任自签名证书,对于任何未手动将证书安装为受信任根的用户,将触发强SmartScreen屏蔽。 这使得自签名证书不适合公共分发。

适当的用途:

  • 本地开发和测试 - 你控制计算机,并且可以手动安装证书
  • 企业内部分发 - IT 部门可以通过 Intune 或组策略将证书部署为受信任的根,从而允许托管设备以无提示方式安装应用

使用 SignTool 对 MSIX 包进行签名

开源:SignPath Foundation

如果项目开放源代码,SignPath Foundation为符合条件的开源项目提供免费代码签名。 该计划通过托管管道提供 OV 级证书签名。 请访问 SignPath Foundation 网站,以查看资格要求和申请程序。