我可以使用受信任的代码签名证书对Windows商店应用进行代码签名吗?

3
我们有一个Windows UWP应用程序,目前在Microsoft Store中可用。该项目包含一个存储关联文件,其中包含发布者属性之一是通用名称(Common Name)。我们的商店账户将CN展示为类似GUID的字符串值。它显示的显示名称是我们公司的名称。在Visual Studio中,我们可以为侧载构建该应用程序,并使用自签名证书进行代码签名,该证书的CN与商店CN(GUID类型的字符串)相同。这使我们能够快速为特定客户测试并获取新功能的新版本,然后侧载版本最终可以通过更新为新发布的商店版本而更新。
我的问题是:我们想使用从受信任的证书颁发机构购买的代码签名证书来签署该应用程序。问题在于,受信任的代码签名证书必须将通用名称设置为公司名称。我们似乎只能使用通用名称等于存储关联文件中的CN(GUID类型字符串)的证书来签署该应用程序。这是与商店相关的应用程序已知的限制,还是我们漏了什么?
1个回答

7
TLDR; 微软商店中发布的任何应用都只能使用微软证书签名。您不能使用自己的证书来发布应用程序。
如果您使用自己的证书签署包,则需要为用户提供外部链接以获取您的应用程序。您可以使用AppInstaller协议
您在CN中看到的GUID(由VS自动生成的证书)实际上是MSFT用于确保在商店中发布的应用程序实际上是由其真正的所有者提交的“私钥”类似机制(即我假设避免某种中间人攻击,其中攻击者可能会以某种方式上传损坏的版本您的应用程序)。
一旦您的应用程序进入商店并通过了所有验证,MSFT将使用自己的证书对其进行签名。我想这就是AppInstaller服务(或Windows 10的商店应用程序)将知道可以信任使用其证书签名的任何应用程序的原因。

1
感谢@Bogdan的见解。您的解释很有帮助,也受到了赞赏。 - Michael M.
@Bogdan 我有一个类似的问题。我知道在 MS 商店发布的任何应用程序都将仅使用 Microsoft 的证书进行签名。那么,是否可以从 Microsoft 购买该代码签名证书? - surajitk
不,那是他们的私有证书。将其提供给第三方等同于安全漏洞。为什么你想购买那个证书?请告诉我们更多关于你场景的细节,我迄今从未听说过有人想要做类似的事情。 - Bogdan Mitrache

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接