Здравствуйте, vladpol, Вы писали:
V>На сколько это ложится в workflow?
Плохо оно ложится в workflow. По вашему объяснению не совсем понятно, что конкретно происходит. Поищите картинки для SSL Handshake, встречаются хорошие с описанием передаваемых данных.
Исходя из вашего описания, вы делаете аутентификакцию клиентов по клиентскому сертификату (это достаточно редко делается)? Потому что в SSL сервер всегда отправляет свой сертификат и фраза "браузер запрашивает сертификаты" имеет смысл только для клиенсткой аутентификации (нельзя не запросить сертификат у сервера). Но при этом в картину все равно не ложится часть, в которой "запрос начинает обрабатываться". Просто потому, что в вашей картинке HTTP State Diagram весь SSL Handshake случается между onBeforeRequest и onBeforeSendHeaders (протокол SSL уровнем ниже HTTP). И ни запроса, ни заголовков на этот момент у сервера нет (не будет же браузер не пойми кому отправлять заголовки и прочие приватные данные). Обрабатывать просто нечего. Кстати, из этого следует еще один интересный факт. Не получится сделать клиентскую аутентификацию для отдельных эндпоинтов, только для всего сервера. Ну т.е. игнорировать клиентский сертификат можно, но запрашиваться он будет при любом обращении к серверу.
В общем, сложно описать наблюдаемую картину исходя из моделей SSL & HTTP. Может, вы наблюдаете запрос OPTIONS перед основным запросом? Это стандартная ситуация. В этом случае вы даже до обработчика на сервере дойдете. Но браузер ответ (response entity) читать не будет, ему только заголовки ответа нужны.