JMeter и дополнительный сертификат клиента SSL

я настраиваю план тестирования с помощью JMeter 2.8 с использованием сертификатов клиента SSL. План тестирования примерно состоит из двух https-вызовов server1 и server2.

сложная часть заключается в том, что вызов server1 не должен использовать аутентификацию клиента SSL (хотя сервер запрашивает ее), а вызов server2 должен использовать аутентификацию клиента SSL.

В настоящее время, как только я даю хранилище ключей JMeter, все вызовы https отправляют сертификат SSL, который вызывает вызов на server1 на провал.

в настоящее время я пробовал два подхода:

  1. я убрал -Djava.net.ssl.keyStore=xxx из командной строки JMeter и используйте предварительный процессор BeanShell или BSH, чтобы установить его непосредственно перед вызовом server2, но он не работает, и вызов сервера 2 не выполняется, как если бы не было указано хранилище ключей.
  2. Я пытаюсь использовать конфигуратор управления хранилищем ключей, чтобы указать несуществующий ключ перед вызовом server1, но когда я помещаю начальный и конечный индексы после последний сертификат в магазине, JMeter все еще отправляет первый сертификат в магазине.

1 ответов


Вы можете сделать следующее:

  • добавьте в jmeter следующие свойства JVM:

    -Djavax.net.ssl.keyStore=<path to folder containing keystore>/keystore.jks       
    
    -Djavax.net.ssl.keyStorePassword=password if any
    
  • использовать Настройки Хранилища Ключей

  • установить в user.свойства:

    https.use.cached.ssl.context=false
    
  • используйте HC4Impl для сэмплера, который должен отправить сертификат клиента

  • используйте JavaImpl для того, который не должен отправлять его (это своего рода трюк, я должен сказать, что я не поймите, почему вы не должны отправлять сертификат клиента, если сервер запрашивает его)