LINUX.ORG.RU

Apache mod_ssl. Получить параметры из «Client Hello»

 , , ,


0

1

Пользователь приходит по https на апач, нужно получить параметры передаваемые в пакете «Client Hello».

Получить версию протокола получилось, код добавила в месте где уже понятно что пакет клиент_хэллоу получен (https://github.com/apache/httpd/blob/7d4c0f0eceab1dbd3fd1237e9f0b3fe9c8914861...)

    char ssl_protocol_version_code_str[16];
    sprintf(ssl_protocol_version_code_str, "%d", SSL_version(ssl));

    //Добавляем переменную в php $_SERVER
    apr_table_set(env, "EXTENTED_SSL_PROTOCOL_VERSION_CODE", ssl_protocol_version_code_str);
А вот получить список предлагаемых клиентом наборов шифрования, расширений, id сессии и пр не удается. Все семейство функций для работы с ClientHello (SSL_client_hello_get0_ciphers(), SSL_client_hello_get0_session_id и пр) возвращают нулевое значение.
В месте в котором вызываются функции пакет уже принят, я проверила тем что получила список поддерживаемых сервером методов шифрования из тех что предложил клиент с помощью SSL_get_client_ciphers().

Как заставить работать семейство функций SSL_client_hello?