如果通过 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项目签名或首选传统 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 创建免费开发人员帐户。 注册后,使用 合作伙伴中心 提交应用并管理其列表。
Azure 工件签名(前称受信任签名)- 建议用于非应用商店分发
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
扩展验证(EV)证书之前在首次下载时完全绕过了 SmartScreen,使其成为没有声誉的新应用程序的首选。 该行为在 2024 年被删除。 EV 签名的文件现在通过与 OV 证书相同的信誉生成过程。
这意味着:
- 如果已有 EV 证书,则它仍然有效且功能正常, 用于签名 — 一直使用它,直到证书过期
- EV 证书仍然需要更严格的标识验证,这可能对企业采购或其他信任上下文很重要
- 仅支付 EV 保费 ($400+/年) 以避免 SmartScreen 警告 不再合理 — 你仍将看到与 OV 证书相同的警告
详细了解 SmartScreen 信誉对于开发人员的影响 ,包括信誉如何建立以及用户看到的内容。
自签名证书 - 仅用于开发和测试
默认情况下,Windows不信任自签名证书,对于任何未手动将证书安装为受信任根的用户,将触发强SmartScreen屏蔽。 这使得自签名证书不适合公共分发。
适当的用途:
- 本地开发和测试 - 你控制计算机,并且可以手动安装证书
- 企业内部分发 - IT 部门可以通过 Intune 或组策略将证书部署为受信任的根,从而允许托管设备以无提示方式安装应用
开源:SignPath Foundation
如果项目开放源代码,SignPath Foundation为符合条件的开源项目提供免费代码签名。 该计划通过托管管道提供 OV 级证书签名。 请访问 SignPath Foundation 网站,以查看资格要求和申请程序。