3.6.2 Повторное использование SSL-сессий
Начиная с MySQL 8.0.29, сервер по умолчанию поддерживает повторное использование SSL-сессий, но только в течение настраиваемого периода времени после активации этой функции пользователем. Все приложения MySQL клиента поддерживают повторное использование сессий. Для описания операций на стороне сервера и клиента см. .
В этом разделе описывается, как приложения C могут использовать возможности API C для включения повторного использования сессий для шифрованных соединений.
Повторное использование SSL-сессий работает следующим образом:
При активном SSL-соединении ваше приложение может запросить текущие данные SSL-сессии, вызвав
mysql_get_ssl_session_data(). Вызов возвращает указатель на объект в памяти, который в настоящее время представляет собой сериализацию сессии в формате PEM в виде строки ASCII.Затем ваше приложение передает указатель функции
mysql_options()с опциейMYSQL_OPT_SSL_SESSION_DATAдля использования в новом соединении, которое оно создаёт (на стадии предварительного подключения).Во время выполнения приложение подключается, как обычно. В этот момент существует возможность повторного использования предыдущей сессии. Ваше приложение может определить, используется ли сессия повторно для нового соединения, вызвав
mysql_get_ssl_session_reused(). Вызов возвращаетTRUE, если сессия существовала и была повторно использована.После того, как вашему приложению больше не нужен указатель, важно освободить его, вызвав
mysql_free_ssl_session_data().
MySQL использует случайный идентификатор контекста, связанный с TLS-контекстом, что также применяется к повторному использованию сессий. С TLS 1.3, когда происходит описанная выше последовательность вызовов, OpenSSL использует предварительно объявленные ключи для повторного использования сессий. В отличие от этого, с TLS 1.2 OpenSSL использует билеты сессий.
© 2025 Oracle
Licensed under the GPLv2 License.