PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb
从 MySQL 8.0.29 开始,服务器默认支持 SSL 会话重用,但仅在用户启用该功能后的可配置超时时间内。所有 MySQL 客户端应用程序都支持会话重用。有关服务器端和客户端操作的说明,请参阅 重用 SSL 会话。
本节介绍 C 应用程序如何使用 C API 功能为加密连接启用会话重用。
SSL 会话重用工作原理如下
在 SSL 连接处于活动状态时,您的应用程序可以通过调用
mysql_get_ssl_session_data()
请求当前 SSL 会话数据。该调用返回一个指向内存中对象的指针,该对象当前是会话的 PEM 序列化形式的 ASCII 字符串。然后,您的应用程序使用
MYSQL_OPT_SSL_SESSION_DATA
选项将指针传递给mysql_options()
,以便在正在构建的新连接中使用(在预连接阶段)。在运行时,应用程序像往常一样连接。此时,之前的会话有可能被重用。您的应用程序可以通过调用
mysql_get_ssl_session_reused()
来确定是否正在为新连接重用会话。如果存在会话并且已重用,则该调用返回TRUE
。在您的应用程序不再需要该指针后,务必通过调用
mysql_free_ssl_session_data()
释放它。
MySQL 使用与 TLS 上下文相关的随机上下文 ID,这也适用于会话重用。在 TLS 1.3 中,当发生上述调用顺序时,OpenSSL 使用预共享密钥进行会话重用。相反,在 TLS 1.2 中,OpenSSL 使用会话票证。