PDF (美式信紙) - 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_options()
,並搭配MYSQL_OPT_SSL_SESSION_DATA
選項,以便在新建立的連線中使用(在連線前階段)。在執行階段,應用程式會像平常一樣連線。此時,先前的連線階段有可能被重複使用。您的應用程式可以呼叫
mysql_get_ssl_session_reused()
,以判斷新連線是否正在重複使用連線階段。如果存在連線階段並且已重複使用,則該呼叫會傳回TRUE
。在您的應用程式不再需要該指標後,請務必呼叫
mysql_free_ssl_session_data()
來釋放該指標。
MySQL 使用與 TLS 環境相關的隨機環境 ID,該 ID 也適用於連線階段重複使用。對於 TLS 1.3,當發生先前描述的呼叫順序時,OpenSSL 會使用預先共用的金鑰來重複使用連線階段。相反地,對於 TLS 1.2,OpenSSL 會使用連線階段票證。