Azure Load Testing では、ロード テストシナリオ中のセキュリティで保護された通信に複数の証明書を使用できます。 この記事では、複数の証明書を Java KeyStore (JKS) ファイルに統合し、キーストア パスワードを Azure Key Vault (AKV) に安全に格納し、JKS ファイルを使用するように Azure Load Testing を構成する方法について説明します。
前提条件
開始する前に、次のことを確認してください。
- シークレットを格納するように Azure Key Vault インスタンスが設定されている。
- Azure Load Testing リソースの マネージド ID (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 portal を開き、Key Vault に移動します。
- オブジェクト>シークレット>生成/インポートを選択します。
- JKS ファイルの名前とパスワードを入力し、[ 作成] をクリックします。
手順 2: Azure Load Testing マネージド ID へのアクセスを割り当てる
- Azure portal で、Azure Key Vault リソースに移動し、左側のウィンドウで [アクセス ポリシー ] を選択し、[ + 作成] をクリックします。
- [アクセス許可] タブで、次の手順を実行します。
- [ シークレットのアクセス許可] で、[取得] を選択。
- [次へ] をクリックします。
-
プリンシパル タブで:
- ロード テスト リソースのマネージド ID を検索して選択します。
- [次へ] をクリックします。
- システム割り当てマネージド ID を使用している場合、マネージド ID 名は Azure Load Testing リソースの名前と一致します。
- もう一度 [ 次へ ] をクリックして、アクセス ポリシーの構成を完了します。
テストの実行時に、ロード テスト リソースに関連付けられているマネージド ID が、Key Vault からロード テストのシークレットを読み取れるようになりました。 Azure Key Vault にシークレットを追加し、ロード テスト用のシークレットを構成したので、Apache JMeter でシークレットを使用するように移動します。
手順 3: キーストア構成と JSR223 PreProcessor を使用する
キーストアの構成
- JMeter スクリプトで、SSL 証明書を管理する キーストア構成要素 を追加します。
- テスト計画>に移動して>構成要素>としてキーストア構成を追加します。
- JKS ファイル内の証明書の別名と一致するように Alias フィールドを設定します。
動的 SSL 構成用の JSR223 プリプロセッサ
- 実行時に SSL プロパティを動的に構成するための JSR223 PreProcessor を追加します。
- スレッド グループ>に移動し、>PreProcessors> JSR223 PreProcessorを追加します。
- 言語を 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>");
-
path-to-your-keystore
とkeystore-password
を実際のキーストア ファイルのパスとパスワードに置き換えます。
手順 4: 証明書を反復処理する CSV データ セット構成を追加する
- JMeter スクリプトで、 CSV データ セット構成 要素を追加して、JKS ファイル内の証明書を反復処理します。
- テスト計画>に移動し、>構成要素を追加します。>CSV データセット構成
- 次のフィールドを構成します。
- ファイル名: 証明書のエイリアスを含む CSV ファイルへのパス。
- 変数名: 変数の名前 (certificateAlias など)。
- JKS ファイルの証明書エイリアスの一覧を含む CSV ファイルを作成します。 各エイリアスは新しい行に配置する必要があります。
- キーストア構成またはスクリプトの変数 (${certificateAlias}など) を使用して、テストの実行中に現在の証明書エイリアスを動的に参照します。
手順 5: テスト ファイルをアップロードする
- Azure portal で、Azure Load Testing リソースに移動し、新しいテスト作成ワークフローを開始します。
- 次のファイルをアップロードします。
- JKS ファイル。
- JMeter テスト スクリプト。
- 証明書エイリアスを含む CSV ファイル。
手順 6: パラメーターを構成する
- テスト作成ワークフローの [パラメーター ] タブに移動します。
- JKS パスワードのシークレットを追加します。
- 名前: Azure Key Vault 内のシークレットの名前。
- 値: Key Vault の URL (例: https://
key-vault-name
.vault.azure.net/secrets/secret-name
)。
- Key Vault シークレットにアクセスする Azure Load Testing リソースのマネージド ID を指定して、 Key Vault 参照 ID を構成します。
すべての構成を確認して、正確性を確認します。 [ テストの作成 ] をクリックしてテストを完了し、実行します。