Перейти к содержимому

Фотография

Web(HTTP/HTML): проблемы с записью толстого клиента с сертификатом


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 Сэм

Сэм

    Постоянный участник

  • Members
  • PipPipPip
  • 212 сообщений
  • ФИО:Сергей Минаев
  • Город:Москва


Отправлено 16 июня 2011 - 07:14

Коллеги, привет!

Столкнулся с проблемой при попытке записать трафик между толстым клиентом (java-приложение, запускаемое jnlp-файлом) и сервером (Tomcat). Согласно информации от разработчиков, между клиентом и сервером бегают простые HTTP-запросы, правда с SSL, на клиенте устанавливается сертификат.

Запись начинается успешно: записываются запросы на загрузку jar-файлов, приложение запускается, открывается его GUI-окно. В логе Recording log все без ошибок, кусок его прилагаю ниже:

[Network Analyzer (1074: 584)] Address lookup for MyMachine312 = 20.17.97.25
[Network Analyzer (1074: 584)] Request Connection: Remote Server @ 11.35.122.27:443   (Service=HTTP)  (Sid=  3)  PROXIED!
[Network Analyzer (1074:1720)]   (Sid:  3) Negotiate Proxy -> Server SSL Handshake (ssl:TLSv1, ciphers:EDH-RSA-DES-CBC3-SHA, cert: C:\cert1.pem)
[Network Analyzer (1074:1720)]   (Sid:  3) Negotiate Client -> Proxy SSL Handshake (ssl:SSLv3, ciphers:RC4-MD5)
[Web Request      (1074:14b8)] "GET /MyApp/app/config.jar"   
[Network Analyzer (1074:14b8)]   (Sid:  3) Client -> Server : 173 bytes (SSL)(Service=HTTP)
[Network Analyzer (1074:14b8)]   (Sid:  3) Server -> Client : 323 bytes (SSL) (Service=HTTP)
[Network Analyzer (1074:14b8)]   (Sid:  3) Server -> Client : 8184 bytes (SSL) (Service=HTTP)
[Network Analyzer (1074:14b8)]   (Sid:  3) Server -> Client : 8184 bytes (SSL) (Service=HTTP)

То есть приложение запущено, я продолжаю запись. Но при попытке записать операцию Login происходит ошибка: клиент не может достучаться до сервера через SSL, логина не происходит, скрипт далее не записывается. Ниже соответствующая ошибка из Recording log:

[Network Analyzer (1074:12bc)] Request Connection: Remote Server @ 11.35.122.27:443   (Service=HTTP)  (Sid=  7)  PROXIED!
[Network Analyzer (1074: 58c)]   (Sid:  7) Negotiate Proxy -> Server SSL Handshake (ssl:TLSv1, ciphers:EDH-RSA-DES-CBC3-SHA, cert: C:\cert1.pem)
[Net An. Error    (1074: 58c)]   (Sid:  7) Negotiate Client -> Proxy SSL Handshake Failed!!!

Необходимый сертификат на клиенте установлен, и в ручном режиме (без записи) приложение корректно работает. При записи на уровне сокетов (протокол Windows Socket) все проходит успешно, проблема именно при записи на уровне Web(HTTP/HTML).
То ли не правильно сделаны настройки сертификатов в LoadRunner, то ли он в принципе не может записывать трафик при аутентификации с сертификатом.

Сталкивался ли кто-нибудь с подобной проблемой? Как решали?
Буду очень благодарен за совет!
  • 0

#2 -=VoV=-

-=VoV=-

    Новый участник

  • Members
  • Pip
  • 12 сообщений

Отправлено 16 июня 2011 - 09:49

Коллеги, привет!

Столкнулся с проблемой при попытке записать трафик между толстым клиентом (java-приложение, запускаемое jnlp-файлом) и сервером (Tomcat). Согласно информации от разработчиков, между клиентом и сервером бегают простые HTTP-запросы, правда с SSL, на клиенте устанавливается сертификат.

То есть приложение запущено, я продолжаю запись. Но при попытке записать операцию Login происходит ошибка: клиент не может достучаться до сервера через SSL, логина не происходит, скрипт далее не записывается. Ниже соответствующая ошибка из Recording log:

Необходимый сертификат на клиенте установлен, и в ручном режиме (без записи) приложение корректно работает. При записи на уровне сокетов (протокол Windows Socket) все проходит успешно, проблема именно при записи на уровне Web(HTTP/HTML).
То ли не правильно сделаны настройки сертификатов в LoadRunner, то ли он в принципе не может записывать трафик при аутентификации с сертификатом.

Сталкивался ли кто-нибудь с подобной проблемой? Как решали?
Буду очень благодарен за совет!


По сути это MitM-атака на SSL (http://en.wikipedia....e-middle_attack). Для тестирования, имхо, необходим SSL proxy, подменяющий сертификаты сервера и клиента и позволяющий влезть в нешифрованный трафик.
  • 0

#3 Сэм

Сэм

    Постоянный участник

  • Members
  • PipPipPip
  • 212 сообщений
  • ФИО:Сергей Минаев
  • Город:Москва


Отправлено 16 июня 2011 - 10:08

То есть хотите сказать, что прокси, который LR вставляет между браузером и сервером при записи, не умеет подставлять сертификат, который используется браузером? Тогда почему первые запросы по SSL проходят успешно, аутентификации Proxy->Server и Client->Proxy работают?
Мне же больше всего непонятно, почему не проходит handshake именно между клиентом и прокси (Client -> Proxy SSL Handshake Failed), а не между прокси и сервером (Proxy -> Server SSL Handshake). Может, надо на прокси класть сертификат, который лежит на сервере?
Правда, это все равно не отвечает на вопрос, почему какие-то запросы проходят, а какие-то (логин) нет...
  • 0

#4 Сэм

Сэм

    Постоянный участник

  • Members
  • PipPipPip
  • 212 сообщений
  • ФИО:Сергей Минаев
  • Город:Москва


Отправлено 21 июня 2011 - 10:05

Попытался подложить в LR не только клиентский сертификат (Client-side), но и серверный серитификат (proxy-server).
Тем не менее все равно на том же месте происходит ошибка: не проходит аутентификация между клиентом и прокси:
Negotiate Client -> Proxy SSL Handshake Failed!!!

Может, я не правильно сертификат подкладываю?
У меня есть файлы .PEM, .PFX(требует пароля) и .KEY
Что надо подкладывать? Может, что-то куда-то переконвертировать нужно?

Буду благодарен, если кто-то подскажет, как грамотно справиться с этим...
  • 0

#5 Сэм

Сэм

    Постоянный участник

  • Members
  • PipPipPip
  • 212 сообщений
  • ФИО:Сергей Минаев
  • Город:Москва


Отправлено 06 июля 2011 - 06:43

Чтоб самому не забыть и кому-нибудь пригодилось.
Как таковую проблему решить не удалось: именно на этом приложении именно с такими сертификатами ошибка не была устранена.
Скрипт в итоге был записан после отключения SSL на приложении.
Если кому-то удастся разобраться в похожей проблеме, не поленитесь написать ее решение. Пусть кому-нибудь еще это поможет :)
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных