你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
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 负载测试资源的名称匹配。
- 再次单击“ 下一步 ”以完成访问策略配置。
测试运行时,与负载测试资源关联的托管标识现在可以从 Key Vault 读取负载测试的机密。 你已在 Azure Key Vault 中添加了机密,为负载测试配置了机密,现在可以前往“在 Apache JMeter 中使用机密”。
步骤 3:使用密钥存储配置和 JSR223 预处理程序
密钥存储配置
- 在 JMeter 脚本中,添加 Keystore Configuration 元素来管理 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>");
- 将
path-to-your-keystore
和keystore-password
替换为实际的密钥存储文件路径和密码。
步骤 4:添加 CSV 数据集配置以迭代处理证书
- 在 JMeter 脚本中,添加 CSV 数据集配置 元素以循环访问 JKS 文件中的证书。
- 转到 测试计划 > 添加 > Config 元素 > CSV 数据集配置。
- 配置以下字段:
- 文件名:包含证书别名的 CSV 文件的路径。
- 变量名称:变量的名称(例如 certificateAlias)。
- 使用 JKS 文件中的证书别名列表创建 CSV 文件。 每个别名都应在新行上写。
- 在密钥存储配置或脚本中使用变量(例如 ${certificateAlias})在测试执行期间动态引用当前证书别名。
步骤 5:上传测试文件
- 在 Azure 门户中,导航到 Azure 负载测试资源并启动新的测试创建工作流。
- 上传以下文件:
- JKS 文件。
- 您的 JMeter 测试脚本。
- 包含证书别名的 CSV 文件。
步骤 6:配置参数
- 转到测试创建工作流中的“ 参数 ”选项卡。
- 为 JKS 密码添加机密:
- 名称:Azure Key Vault 中机密的名称。
- 值:密钥保管库的URL(例如,https://
key-vault-name
.vault.azure.net/secrets/secret-name
)。
- 通过指定将访问密钥保管库机密的 Azure 负载测试资源的托管标识,配置密钥保管库引用标识。
查看所有配置以确保正确性。 单击“ 创建测试 ”以完成并运行测试。