簽署應用程式與部署資訊清單

如果您想要使用 ClickOnce 部署來發行應用程式,必須搭配使用 Authenticode 技術和公開/私密金鑰組來簽署應用程式和部署資訊清單。 您可以使用 Windows 憑證存放區或金鑰檔的憑證來簽署資訊清單。

本文中的資訊僅適用於您使用 .NET Framework 4.7.2 或更早版本時。 如果您使用 .NET 5 或更新版本,請遵循 使用 ClickOnce 部署 .NET Windows 桌面應用程式中的步驟。

如需詳細資訊,請參閱 ClickOnce 安全性和部署

針對 .exe 應用程式,您可以選擇是否要簽署 ClickOnce 資訊清單。 如需詳細資訊,請參閱本文件的<產生未簽署的資訊清單> 一節。

如需建立金鑰檔的資訊,請參閱如何:建立公用/私密金鑰組

注意

Visual Studio 只支援副檔名為 .pfx 的個人資訊交換 (PFX) 金鑰檔。 不過,您可以在專案屬性的 [簽署] 頁面中,按一下 [從存放區選取],即可從目前使用者的 Windows 憑證存放區選取其他類型的憑證。

使用憑證簽署

若要使用此方法,您必須擁有由憑證授權 (CA) 簽署的憑證。 憑證是由協力廠商憑證服務提供者,或企業內授權的組織所發行。

  1. 請移至專案屬性視窗 (以滑鼠右鍵按一下 [方案總管] 中的專案節點,然後選取 [屬性])。 在 [簽署] 索引標籤上,選取 [簽署 ClickOnce 資訊清單] 核取方塊。

  2. 按一下 [從存放區選取] 按鈕。

    [選取憑證] 對話方塊隨即出現,並顯示 Windows 憑證存放區的內容。

    提示

    如果您按一下 [按一下這裡檢視憑證屬性],則會顯示 [憑證詳細資料] 對話方塊。 這個對話方塊包含憑證的詳細資訊與其他選項。 按一下 [憑證] 以檢視其他說明資訊。

  3. 選取您想要用來簽署資訊清單的憑證。

    提示

    如果存放區中沒有任何憑證,您仍然可以 使用測試憑證簽署

  4. 此外,您可以在 [時間戳記伺服器 URL] 文字方塊中,指定時間戳記伺服器的位址。 這種伺服器可提供時間戳記,以指定資訊清單的簽署時間。 它通常是由提供 CA 所簽署憑證的相同協力廠商所提供。

使用現有金鑰檔案簽署

  1. 在 [簽署] 頁面上,選取 [簽署 ClickOnce 資訊清單] 核取方塊。

  2. 按一下 [從檔案選取] 按鈕。

    [選取檔案] 對話方塊隨即出現。

  3. 在 [選取檔案] 對話方塊中,瀏覽至您要使用的金鑰檔 (.pfx) 位置,然後按一下 [開啟]

    注意

    此選項僅支援具有 .pfx 副檔名的檔案。 如果您的金鑰檔或憑證是其他格式,請將它儲存在 Windows 憑證存放區,並遵循上一個程序所述選取該憑證。 選取的憑證用途應包含程式碼簽署。

    [輸入密碼以開啟檔案] 對話方塊隨即出現。 (如果 .pfx 檔案是儲存在您的 Windows 憑證存放區,或未受密碼保護,系統就不會提示您輸入密碼)。

  4. 輸入密碼以存取金鑰檔,然後選取 Enter

注意

.pfx 檔案不能包含憑證鏈結資訊。 如果包含,則會發生下列匯入錯誤: 找不到用於解密的憑證和私密金鑰。 若要移除憑證鏈結資訊,您可以使用 Certmgr.msc停用選項 以在匯出 *.pfx 檔案時 包含所有憑證

使用測試憑證簽署

測試憑證不是由憑證授權單位 (CA) 簽署,而且只能用於測試用途。 如需測試憑證的詳細資訊,請參閱 使用憑證授權單位可如何協助使用者

  1. 在 [簽署] 頁面上,選取 [簽署 ClickOnce 資訊清單] 核取方塊。

  2. 若要建立新憑證以進行測試,請按一下 [建立測試憑證] 按鈕。

  3. 在 [建立測試憑證] 對話方塊中,輸入密碼,以協助保護您的測試憑證。

產生未簽署的資訊清單

對於以 .exe 為基礎的應用程式,簽署 ClickOnce 資訊清單是選擇性的。 下列程序說明如何產生未簽署的 ClickOnce 資訊清單。

重要

未簽署的資訊清單可以簡化應用程式的開發和測試作業。 不過,未簽署的資訊清單會在生產環境中帶來很大的安全性風險。 因此,只有當您是在內部網路 (其與網際網路或其他來源的惡意程式碼完全隔離) 的電腦上執行 ClickOnce 應用程式時,才建議使用未簽署的資訊清單。

除非已產生的雜湊中特別排除一或多個檔案,否則 ClickOnce 預設會自動簽署資訊清單。 換句話說,如果所有檔案都包含在雜湊中,發行應用程式時即會產生已簽署的資訊清單,即使清除 [簽署 ClickOnce 資訊清單] 核取方塊亦同。

產生未簽署的資訊清單,並在產生的雜湊中包含所有檔案

若要產生未簽署的資訊清單,以在產生的雜湊中包含所有檔案,您必須先發行應用程式與已簽署的資訊清單。 因此,請遵循先前程序的其中之一,先簽署 ClickOnce 資訊清單,然後再發行應用程式。

  1. [簽署] 索引標籤上,清除 [簽署 ClickOnce 資訊清單] 核取方塊。

  2. [發佈] 索引標籤上,重設發行版本,讓只有一個版本的應用程式可供使用。 清除 的核取方塊,以在每個發行時自動遞增版本 。 根據預設,每當您發行應用程式時,Visual Studio 就會自動遞增發行版本的修訂編號。 如需詳細資訊,請參閱如何:設定 ClickOnce 發行版本

  3. 發行應用程式。 Visual Studio 會告訴您應用程式已使用與伺服器上現有應用程式不同的金鑰進行簽署,並詢問您是否要覆寫它。 選擇 [ ]。

產生未簽署的資訊清單,並從產生的雜湊中排除一或多個檔案

  1. 在 [簽署] 頁面上,清除 [簽署 ClickOnce 資訊清單] 核取方塊。

  2. [發佈] 索引標籤上,選擇 [應用程式檔案] 按鈕,以開啟 [應用程式檔案] 對話方塊,並為您想要從產生的雜湊中排除的檔案,將 [雜湊] 設定為 [排除]

    注意

    從雜湊排除檔案時,會將 ClickOnce 設為停用自動簽署資訊清單,您即不需要先使用簽署的資訊清單來發行 (如先前程序所示)。

  3. 發行應用程式。