JMeter和可选的SSL客户端证书

我正在使用涉及SSL客户端证书的JMeter 2.8设置测试计划。测试计划大致包括对server1和server2的两个https调用。

棘手的是,对server1的调用不应使用SSL客户端身份验证(尽管服务器正在请求一个),而对server2的调用则必须使用SSL客户端身份验证。

当前,一旦我将密钥库提供给JMeter,所有https调用都会发送SSL证书,从而导致对server1的调用失败。

我目前尝试了两种方法:

  1. -Djava.net.ssl.keyStore=xxx从JMeter命令行中删除了,并在调用server2之前使用BeanShell或BSH预处理器对其进行了设置,但是它不起作用,并且对服务器2的调用失败,就好像没有指定密钥库一样。
  2. 我尝试使用Keystore管理配置器在调用server1之前指定一个不存在的密钥,但是当我将起始索引和结束索引放在存储区中的最后一个证书之后时,JMeter仍然会发送存储区中的第一个证书。

回答:

您可以执行以下操作:

  • 将以下JVM属性添加到jmeter:

    -Djavax.net.ssl.keyStore=<path to folder containing keystore>/keystore.jks

    -Djavax.net.ssl.keyStorePassword=password if any

  • 使用密钥库配置

  • 在user.properties中设置:

    https.use.cached.ssl.context=false

  • 使用HC4Impl作为必须发送客户端证书的采样器

  • 将JavaImpl用于不得发送的JavaImpl(这是一种技巧,我必须说,我不明白为什么如果服务器请求它就不能发送客户端证书)

以上是 JMeter和可选的SSL客户端证书 的全部内容, 来源链接: utcz.com/qa/420756.html

回到顶部