logo
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline xEdward  
#1 Оставлено : 29 марта 2017 г. 16:04:29(UTC)
xEdward

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.11.2016(UTC)
Сообщений: 2

Добрый день.

Возникли сложности с использованием КриптоПро JTLS в процессе интеграции с другими Системами. Наш сервер имеет собственную бизнес-логику, предусматривающую анализ сертификата клиента. Однако, по неизвестной причине, каждый второй запрос не содержит в себе сертификата с точки зрения Tomcat.

В логах ru.CryptoPro.ssl.SSLLogger содержится информация о том, что CryptoPro "восстанавливает" предыдущую сессию. Соединение устанавливается, но получить сертификат клиента становится невозможно.

Сведения об окружении:
  • java: 1.8.0_20
  • jcp: 2.0.388030
  • tomcat: 8.0.21


Лог запроса с сертификатом:


Лог последующего запроса - сертификат пропал:


Дополнительное описание:
Из логов видно, что CryptoPro восстанавливает сессию Session-7, однако в реальности во втором запросе мне доступна сессия-пустышка Session-1.

Для получения информации о сертификате клиента использую соглашения, описанные здесь: https://docs.oracle.com/...vlet/ServletRequest.html




Подскажите пожалуйста, на что следует обратить внимание для устранения этой проблемы?
Offline afev  
#2 Оставлено : 4 апреля 2017 г. 14:35:11(UTC)
afev


Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 1,760
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 221 раз в 219 постах
Здравствуйте.
Наверно, я не совсем понял ваш вопрос. Первый приведенный лог - это лог сервера(?), в нем выведен сертификат сервера (server). При установлении соединения в сессии сохраняется мастер-ключ, и которого получаем сессионные ключи. Соответственно, при возобновлении сессии (извлечении из списка кэшированных) в ней уже есть мастер-ключ, происходит короткий обмен без вывода в лог.
С указанным атрибутом JTLS никак не работает, его заполняет, полагаю, сам томкат. Восстановление сессии возможно при определенных условиях: совпадение протокола и сайфер-сюиты, наличие сертификата клиента (если включена аутентификация).
Попробуйте, в качестве эксперимента, в панели JCP на закладке JTLS отключить кэширование сессий.
Offline xEdward  
#3 Оставлено : 21 апреля 2017 г. 18:31:34(UTC)
xEdward

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.11.2016(UTC)
Сообщений: 2

Добрый день.

Да, приведенные логи - это логи сервера.

Опытным путем удалось установить, что при добавлении опции sessionTimeout="0" коннектора tomcat, достигается желаемое поведение: каждый запрос выполняется в отдельной сессии. Это было слегка не очевидным, т.к. в документации к tomcat утверждается, что значение "0" ведет к совершенно обратному результату.

Благодарим за содействие!
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.