JMeter和可选的SSL客户端证书

gab*_*uzo 9 jmeter ssl-certificate

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

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

目前,只要我向JMeter提供密钥库,所有https呼叫都会发送SSL证书,导致对server1的调用失败.

我目前尝试了两种方法:

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

UBI*_*ACK 8

你能做的是以下几点:

  • 添加到jmeter以下JVM属性:

    -Djavax.net.ssl.keyStore=<path to folder containing keystore>/keystore.jks       
    
    -Djavax.net.ssl.keyStorePassword=password if any
    
    Run Code Online (Sandbox Code Playgroud)
  • 使用密钥库配置

  • 在user.properties中设置:

    https.use.cached.ssl.context=false
    
    Run Code Online (Sandbox Code Playgroud)
  • 将HC4Impl用于必须发送客户端证书的采样器

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