2

我们有一个 Windows UWP 应用程序,目前在 Microsoft 商店中。该项目包括一个商店关联文件,其中包含发布者属性,其中之一是通用名称。我们的商店帐户将 CN 显示为类似于 GUID 的字符串值。它将显示名称显示为我们的公司名称。在 Visual Studio 中,我们可以使用自签名证书构建应用程序以进行旁加载和代码签名,其中证书的 CN 与 Store CN 相同(GUID 类似字符串)。这使我们能够在商店版本上加载应用程序的新版本,以便快速为特定客户测试和获取新功能。然后,最终可以使用更新的已发布商店版本来更新侧载版本。

我的问题是:我们想使用从受信任的证书颁发机构购买的代码签名证书对应用程序进行签名。问题是受信任的代码签名证书必须将通用名称作为公司名称。我们似乎只能使用通用名称等于商店关联文件中的 CN 的证书(类似于字符串的 GUID)对应用程序进行签名。这是存储相关应用程序的已知限制还是我们遗漏了什么?

4

1 回答 1

5

TLDR;在 MS Store 中发布的任何应用程序都将仅使用 Microsoft 的证书进行签名。您不能使用自己的证书在商店中发布应用程序。

如果您使用自己的证书对包进行签名,则需要为用户提供外部链接以获取您的应用程序。您可以为此使用AppInstaller 协议

您在 CN 中看到的 GUID(用于 VS 自动生成的证书)实际上是一种类似“私钥”的机制,MSFT 使用它来确保在商店中发布的应用程序实际上是由其真实所有者提交的(即我假设以避免某种中间人攻击,攻击者可能会以某种方式上传您的应用程序的损坏版本)。

一旦您的应用程序进入商店并通过所有验证,MSFT 将使用他们自己的证书对其进行签名。我想这就是 AppInstaller 服务(或 Windows 10 中的 Store 应用程序)如何知道可以信任任何使用其证书签名的应用程序。

于 2020-06-19T08:38:54.083 回答