你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure 负载测试中使用多个证书

Azure 负载测试支持在负载测试方案中使用多个证书进行安全通信。 本文介绍如何将多个证书合并到 Java KeyStore (JKS) 文件中,安全地将密钥存储密码存储在 Azure Key Vault (AKV)中,并将 Azure 负载测试配置为使用 JKS 文件。

先决条件

在开始之前,请确保以下各项:

配置多个证书的步骤

步骤 1:创建和保护 JKS 文件

  1. 使用 keytool 实用工具 创建 JKS 文件并导入所有必要的证书。
    keytool -importcert -file <certificate-file> -keystore <keystore-name>.jks -alias <alias-name>
    
  2. 将 JKS 文件的密码存储为 Azure Key Vault 中的机密:
    • 打开 Azure 门户并导航到 Key Vault。
    • 选择“对象”>“机密”>“生成/导入”
    • 输入 JKS 文件的名称和密码,然后单击“ 创建”。

步骤 2:分配对 Azure 负载测试托管标识的访问权限

  1. 在 Azure 门户中,转到 Azure Key Vault 资源,然后从左窗格中选择 “访问策略 ”,然后单击“ + 创建”。
  2. 在“权限”选项卡上:
    • “机密权限”下,选择“ 获取”。
    • 单击 “下一步”
  3. “主体”选项卡上:
    • 搜索并选择负载测试资源的托管标识。
    • 单击 “下一步”
    • 如果使用系统分配的托管标识,则托管标识名称与 Azure 负载测试资源的名称匹配。
  4. 再次单击“ 下一步 ”以完成访问策略配置。

测试运行时,与负载测试资源关联的托管标识现在可以从 Key Vault 读取负载测试的机密。 你已在 Azure Key Vault 中添加了机密,为负载测试配置了机密,现在可以前往“在 Apache JMeter 中使用机密”。

步骤 3:使用密钥存储配置和 JSR223 预处理程序

密钥存储配置

  1. 在 JMeter 脚本中,添加 Keystore Configuration 元素来管理 SSL 证书。
    • 转到 测试计划 > 添加 > Config 元素 > 密钥存储配置
    • 设置“别名”字段以匹配 JKS 文件中的证书别名。

用于动态 SSL 配置的 JSR223 预处理器

  1. 添加 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>");
      
  2. path-to-your-keystorekeystore-password 替换为实际的密钥存储文件路径和密码。

步骤 4:添加 CSV 数据集配置以迭代处理证书

  1. 在 JMeter 脚本中,添加 CSV 数据集配置 元素以循环访问 JKS 文件中的证书。
    • 转到 测试计划 > 添加 > Config 元素 > CSV 数据集配置
    • 配置以下字段:
      • 文件名:包含证书别名的 CSV 文件的路径。
      • 变量名称:变量的名称(例如 certificateAlias)。
  2. 使用 JKS 文件中的证书别名列表创建 CSV 文件。 每个别名都应在新行上写。
  3. 在密钥存储配置或脚本中使用变量(例如 ${certificateAlias})在测试执行期间动态引用当前证书别名。

步骤 5:上传测试文件

  1. 在 Azure 门户中,导航到 Azure 负载测试资源并启动新的测试创建工作流。
  2. 上传以下文件:
    • JKS 文件。
    • 您的 JMeter 测试脚本。
    • 包含证书别名的 CSV 文件。

步骤 6:配置参数

  1. 转到测试创建工作流中的“ 参数 ”选项卡。
  2. 为 JKS 密码添加机密:
    • 名称:Azure Key Vault 中机密的名称。
    • 值:密钥保管库的URL(例如,https://key-vault-name.vault.azure.net/secrets/secret-name)。
  3. 通过指定将访问密钥保管库机密的 Azure 负载测试资源的托管标识,配置密钥保管库引用标识

查看所有配置以确保正确性。 单击“ 创建测试 ”以完成并运行测试。