使用 Azure Key Vault 簽署封裝

在 Visual Studio 2019 版本 16.6 預覽版 3 和以後版本中,在開發和測試情境下,可以使用存放在 Azure Key Vault 的憑證,簽署 UWP 和桌面應用程式套件。 此工具會從 Azure Key Vault 解壓縮您的公開和私密金鑰,將其載入至開發電腦上的憑證存放區,以便使用 SignTool.exe 簽署您的套件。

重要

本文中所述的程序僅適用於開發和測試案例。 此程序並非視為用於發佈私密金鑰的最佳做法。 為了確保採取最佳安全做法,供發佈的私密金鑰應當只透過您的持續整合與持續部署 (CI/CD) 平台建議的工具處理。

必要條件

  • Azure 帳戶。 如果您沒有 Azure 帳戶,請從這裡開始。
  • Azure Key Vault。 如需詳細資訊,請參閱建立 Key Vault
  • 已匯入 Azure Key Vault 的有效套件簽署憑證。 Azure Key Vault 產生的預設憑證不適用於程式碼簽署。 如需如何建立套件簽署憑證的詳細資訊,請參閱建立套件簽署的憑證

將憑證匯入至您的 Key Vault

將憑證新增至您的 Key Vault 非常簡單。 在此範例中,會新增名為 UwpSigningCert.pfx 的有效 UWP 程式碼簽署憑證。

  1. 在 [Key Vault 屬性] 頁面上,選取 [憑證]。
  2. 按一下 [產生/匯入]。
  3. 在 [建立憑證] 畫面中,選擇以下值:
    • [憑證建立方法]:匯入
    • [憑證名稱]:UwpSigningCert
    • [上傳憑證檔案]:UwpSigningCert.pfx
    • [解密憑證]:如果您的憑證受密碼保護,請在 [密碼] 欄位中提供密碼。
  4. 按一下 [建立]。

注意

此自我簽署的憑證不受 Windows 信任,除非已由管理員匯入並信任該憑證。 請妥善保護所有憑證,包括自我簽署憑證。

設定 Key Vault 的存取原則

您可以使用存取原則,控制可存取 Key Vault 內容的對象。 Key Vault 存取原則會分別對金鑰、祕密和憑證授與權限。 您只能將使用者權限授與金鑰,而不能將權限授與秘密。 金鑰、祕密和憑證的存取權限是在保存庫層級進行管理。 如需詳細資訊,請參閱 Azure Key Vault 安全性

注意

當您在 Azure 訂閱中建立 Key Vault 時,其會自動與訂閱的 Azure Active Directory 租用戶建立關聯。 任何人要嘗試管理或擷取 Key Vault 內容,都必須經由 Azure AD 驗證。

  1. 在 [Key Vault 屬性] 頁面上,選取 [存取原則]。
  2. 選取 [+ 新增存取原則]。
  3. 按一下 [金鑰權限] 下拉式清單,並在 [金鑰管理作業]下,勾選 [取得] 和 [清單] 方塊。
  4. 按一下 [選取主體],搜尋您要授與權限的使用者,並按一下 [選取]。
  5. 按一下 [新增]
  6. 請務必按一下 [儲存] 以儲存您的變更。

注意

不鼓勵讓使用者直接存取金鑰保存庫。 理想情況下,應該將使用者新增至 Azure AD 群組,然後再授與金鑰保存庫的存取權。

在 Visual Studio 中,從 Key Vault 中選取憑證

Visual Studio 中的 [建立應用程式套件] 精靈可讓您選擇要用來簽署應用程式套件的憑證。 您可以透過 Azure Key Vault 選擇套件簽署憑證。 您必須提供包含憑證之 Key Vault 的 URI,而且您在 Visual Studio 中驗證的 Microsoft 帳戶必須具有正確的存取權限。

  1. 在 Visual Studio 中,開啟 UWP 應用程式專案或桌面 Windows 應用程式封裝專案
  2. 選取 [發佈- 封裝- 建立應用程式套件] 以開啟 [建立應用程式套件] wizard。
  3. 在 [選取發佈方法] 頁面中,選取 [側載]。
  4. 在 [選取簽署方法] 頁面中,按一下 [從 Azure Key Vault 選取...]。
  5. 出現 [從 Azure Key Vault 選取憑證] 對話方塊之後,請使用帳戶選擇器來選擇已設定存取原則的帳戶。
  6. 輸入 Key Vault 的 URI。 您可以在 Key Vault 的 [概觀] 頁面中找到 URI,並以 [DNS 名稱] 加以識別。
  7. 按一下 [檢視中繼資料] 按鈕。
  8. 憑證完成載入之後,請從清單中選取您想要的憑證 (例如,UwpSigningCert)。
  9. 按一下 [確定] 。

注意

憑證將會匯入您的本機憑證存放區,以供套件簽署之用。

使用 Azure Key Vault 的密碼來解密您的憑證

如果您使用本機密碼保護的憑證 (.pfx) 來簽署應用程式套件,可能難以管理用於解密的密碼。 當您在 [建立應用程式套件] 精靈中匯入憑證時,系統會提示您手動輸入密碼。 或者也可以選取 Azure Key Vault 的密碼。

  1. 在 Visual Studio 中,開啟 UWP 應用程式專案或桌面 Windows 應用程式封裝專案
  2. 選取 [發佈- 封裝- 建立應用程式套件] 以開啟 [建立應用程式套件] wizard。
  3. 在 [選取發佈方法] 頁面中,選取 [側載]。
  4. 在 [選取簽署方法] 頁面中,按一下 [從檔案選取..]。
  5. 在出現 [憑證受密碼保護] 對話方塊之後,按一下 [從 Key Vault 選取密碼]。
  6. 出現 [從 Azure Key Vault 選取密碼] 對話方塊之後,請使用帳戶選擇器來選擇已設定存取原則的帳戶。
  7. 輸入 Key Vault 的 URI。 您可以在 Key Vault 的 [概觀] 頁面中找到 URI,並以 [DNS 名稱] 加以識別。
  8. 按一下 [檢視中繼資料] 按鈕。
  9. 密碼完成載入之後,請從清單中選取您想要的密碼 (例如,UwpSigningCertPassword)。
  10. 按一下 [確定] 。