2012-01-21 50 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. 購買的證書爲用戶提供了一定程度的確定性,即有關發佈商的信息已由第三方(且受信任)方驗證。以及任何以下更新。