2012-01-21 106 views
26

根据Microsoft,你必须签署你的ClickOnce应用程序。但是在我看来,当我发布它而没有签署它时(通过关闭“签署ClickOnce清单”选项),它看起来工作得很好。什么是签署ClickOnce清单的?

我真的不在乎,并保留默认值(我想我正在使用测试证书),直到我更改了计算机并开始收到一条消息,告诉我'该应用程序使用与现有应用程序不同的键签名在服务器上',其中seems将导致我的用户停止获取自动更新。显然,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

回答

36

这是一项安全功能,允许您的用户验证是否有任何更新确实源自之前安装的版本的发布者。这是公钥加密的基本属性。 最重要的是,您可以让您的证书由受信任的对等方授权,以便提供的发布者的详细信息也得到验证。 (具有相同的出版商像以前并不一定意味着原始信息有关出版商的是正确的,是一个买一个的优势。)

所以总结:

  1. 没有证书,使您的用户在赌博软件来自哪里。
  2. 自签名证书为用户确定至少来自同一个发布者的更新与原始安装相同。但还是不知道这个原作是从哪里来的。
  3. 购买的证书为用户提供了一定程度的确定性,即有关发布商的信息已由第三方(且受信任)方验证。以及任何以下更新。