Azure 負載測試支援在負載測試案例期間使用多個憑證進行安全通訊。 本文說明如何將多個憑證合併到 Java KeyStore (JKS) 檔案、安全地將密鑰存放區密碼儲存在 Azure Key Vault (AKV),以及設定 Azure 負載測試以使用 JKS 檔案。
先決條件
開始之前,請確定下列事項:
- 您已設定 Azure Key Vault 實例來儲存秘密。
- 您已設定 Azure 負載測試資源的受控識別(MI)。
- 您已建立 Java KeyStore (JKS) 檔案,其中包含所有必要的憑證。
- 您已將 JKS 密碼儲存為 Azure Key Vault 中的秘密。
設定多個憑證的步驟
步驟 1:建立和保護 JKS 檔案
- 使用 keytool公用程式 來建立 JKS 檔案,並匯入所有必要的憑證。
keytool -importcert -file <certificate-file> -keystore <keystore-name>.jks -alias <alias-name> - 將 JKS 檔案的密碼儲存為 Azure Key Vault 中的秘密:
- 開啟 Azure 入口網站並流覽至您的 Key Vault。
- 選取 [物件>秘密產生/匯入>]。
- 輸入 JKS 檔案的名稱和密碼,然後按兩下 [ 建立]。
步驟 2:指派 Azure 負載測試受控識別的存取權
- 在 Azure 入口網站中,移至您的 Azure Key Vault 資源,然後從左窗格中選取 [ 存取原則 ],然後按兩下 [ + 建立]。
- 在 [許可權] 索引標籤上:
- 在 [ 秘密許可權] 底下,選取 [取得]。
- 按 [下一步]。
- 在 [ 主體] 索引標籤 上:
- 搜尋並選取負載測試資源的受控識別。
- 按 [下一步]。
- 如果您使用系統指派的受控識別,受控識別名稱會符合 Azure Load Testing 資源的身分識別名稱。
- 再次按 [下一步 ] 以完成存取原則設定。
當您的測試執行時,與負載測試資源相關聯的受控識別現在可以從 Key Vault 讀取負載測試的秘密。 既然您已在 Azure Key Vault 中新增秘密並設定負載測試的秘密,請移至在 Apache JMeter 中使用秘密。
步驟 3:使用金鑰存放區設定和 JSR223 預處理器
金鑰存放區設定
- 在您的 JMeter 腳本中,新增 Keystore 組態 元素來管理 SSL 憑證。
- 移至 [測試計劃 > ] [新增 > Config 元素 > 金鑰存放區組態]。
- 設定 [別名] 欄位,以符合 JKS 檔案中的憑證別名。
動態 SSL 設定的 JSR223 預處理器
- 新增 JSR223 PreProcessor ,以在運行時間動態設定 SSL 屬性。
- 移至 [線程群組 > ] [新增 > 預處理器 > JSR223 預處理器]。
- 將語言設定為 Java。
- 新增下列文稿:
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12"); System.setProperty("javax.net.ssl.keyStore", "<path-to-your-keystore>"); System.setProperty("javax.net.ssl.keyStorePassword", "<keystore-password>");
- 將和
keystore-password取代path-to-your-keystore為您的實際金鑰存放區檔案路徑和密碼。
步驟 4:新增 CSV 數據集組態以逐一查看憑證
- 在您的 JMeter 腳本中,新增 CSV 數據集 Config 元素,以逐一查看 JKS 檔案中的憑證。
- 移至 測試計劃 > 新增 > Config 元素 > CSV 資料集組態。
- 設定下列欄位:
- 檔名:CSV 檔案的路徑,其中包含憑證別名。
- 變數名稱:變數名稱:變數的名稱(例如 certificateAlias)。
- 使用 JKS 檔案中的憑證別名清單建立 CSV 檔案。 每個別名都應該在新行上。
- 在密鑰存放區組態或腳本中使用變數 (例如 ${certificateAlias}),在測試執行期間動態參考目前的憑證別名。
步驟 5:上傳測試檔案
- 在 Azure 入口網站中,流覽至您的 Azure 負載測試資源,並開始新的測試建立工作流程。
- 上傳下列檔案:
- JKS 檔案。
- 您的 JMeter 測試文稿。
- 具有憑證別名的 CSV 檔案。
步驟 6:設定參數
- 移至測試建立工作流程中的 [ 參數 ] 索引標籤。
- 新增 JKS 密碼的秘密:
- 名稱:Azure Key Vault 中的秘密名稱。
- 值:Key Vault URL(例如,https://
key-vault-name.vault.azure.net/secrets/secret-name)。
- 藉由指定 Azure 負載測試資源的受控識別來存取 Key Vault 秘密,以設定 Key Vault 參考身分識別。
檢閱所有設定,以確保正確性。 按兩下 [建立測試 ] 以完成並執行測試。