ClickOnce清单签名的用途是什么?

42
根据Microsoft的说法,您必须对ClickOnce应用程序进行签名。但是,当我在发布时关闭“签署ClickOnce清单”选项而不签署时,它似乎可以正常工作。
直到我更换电脑并开始收到消息告诉我“该应用程序使用与服务器上现有应用程序不同的密钥签名”,似乎会导致我的用户无法获得自动更新。显然,VS使用我的计算机名称来创建密钥。
因此,我应该停止签署我的ClickOnce清单以防止出现这种错误,还是签署有益。另外,这些证书是否会导致在安装应用程序时显示我的公司名称而不是“未知发行商”消息,还是我需要购买两种不同类型的证书?

1
你只需要一种类型的证书(Authenticode代码签名证书)。是的,对你的应用程序进行签名会在安装你的代码之前向用户显示一个不那么可怕的警告提示。http://blogs.msdn.com/b/ieinternals/archive/2011/03/22/authenticode-code-signing-for-developers-for-file-downloads-building-smartscreen-application-reputation.aspx - EricLaw
1个回答

61

这是一项安全特性,允许用户验证任何更新是否真的来自于之前安装版本的发布者。这是公钥加密的基本属性。

此外,您可以通过受信任的同行机构授权您的证书,以便还可以验证提供的发布者详细信息。(与之前相同的发布者并不意味着关于发布者的原始信息是正确的。这就是购买证书的优势所在。)

因此,总结如下:

  1. 没有证书会使您的用户承担软件来源的风险。
  2. 自签名证书确保用户至少能确信更新来自与原始安装程序相同的发布者。但仍不知道该原始安装程序来自何处。
  3. 购买的证书为用户提供了一定程度的确定性,即发布者的信息是由第三方(且可信任的)机构验证的。以及任何随后的更新。

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