3.2.10 TLS 函數

本節描述的函數是在 NDB 8.3 中新增的,用於支援節點間通訊的傳輸層安全性 (Transport Layer Security)。本節也包含有關某些函數使用的兩個資料結構的資訊。

有關 NDB 叢集中 TLS 支援的更多資訊,請參閱 NDB 叢集的 TLS 連結加密

ndb_mgm_cert_table_free()

描述

釋放憑證描述的鏈結列表。

簽章
void ndb_mgm_cert_table_free
  (
    struct ndb_mgm_cert_table **list
  )
參數
list

ndb_mgm_cert_table 憑證描述的鏈結列表

回傳值

ndb_mgm_connect_tls()

描述

連線到管理伺服器。此函數包裝對 ndb_mgm_connect() 的呼叫,後面接著對 ndb_mgm_start_tls() 的呼叫。使用者必須先呼叫 ndb_mgm_set_ssl_ctx(),才能叫用此函數。

ndb_mgm_connect() 的情況不同,ndb_mgm_connect_tls() 無法在已連線的處理常式上呼叫;此類嘗試會因錯誤 NDB_MGM_ALREADY_CONNECTED 而失敗。

簽章
int ndb_mgm_connect_tls
  (
    NdbMgmHandle handle, 
    int no_retries,
    int retry_delay_in_seconds, 
    int verbose,
    int tls_req_level
  )
參數
handle

管理伺服器處理常式 (NdbMgmHandle)。

no_retries

進行連線嘗試的次數 (0 表示連線一次)。

retry_delay_in_seconds

每次重試連線前等待的時間長度。

verbose

印出有關連線重試的報告。

tls_req_level

此參數可以採用以下兩個值之一

  1. CLIENT_TLS_RELAXED:TLS 驗證失敗仍會導致錯誤,但憑證遺失或伺服器拒絕會導致成功進行明文連線。

  2. CLIENT_TLS_STRICT:任何建立 TLS 的失敗都會被視為錯誤,且連線會關閉。

回傳值

ndb_mgm_get_tls_stats()

描述

取得伺服器 TLS 統計資料

簽章
int ndb_mgm_get_tls_stats
  (
    NdbMgmHandle handle,
    struct ndb_mgm_tls_stats *result
  )
參數
handle

管理伺服器處理常式 (NdbMgmHandle)。

result

指向儲存結果資料的 ndb_mgm_tls_stats 結構的指標

回傳值

成功時為 0,錯誤時為 -1

ndb_mgm_has_tls()

描述

檢查已連線的處理常式是否正在使用 TLS。

簽章
int ndb_mgm_has_tls
  (
    NdbMgmHandle handle
  )
參數
handle

管理伺服器處理常式 (NdbMgmHandle)。

回傳值

如果處理常式正在使用 TLS,則為 1;如果不是,則為 0

ndb_mgm_list_certs()

描述

查詢已連線的 MGM 用戶端的 TLS 憑證

簽章
int ndb_mgm_list_certs
  (
    NdbMgmHandle handle, 
    struct ndb_mgm_cert_table **list
  )
參數
handle

管理伺服器處理常式 (NdbMgmHandle)。

list

指向 ndb_mgm_cert_table 結構指標的位址。

回傳值

以下值之一

  • > 0:連結描述的總數。

  • 0:成功,但沒有要報告的 TLS 連線。

  • -1:錯誤。

ndb_mgm_set_ssl_ctx()

描述

為處理常式設定 SSL 環境結構 (CTX)。

簽章
int ndb_mgm_set_ssl_ctx
  (
    NdbMgmHandle handle, 
    struct ssl_ctx_st *ctx
  )
參數
handle

管理伺服器處理常式 (NdbMgmHandle)。

ctx

用於 TLS 和 HTTPS 連線的 SSL_ctx

回傳值

成功時為 0,如果已設定 CTX 則為 -1

ndb_mgm_start_tls()

描述

透過將開啟的未加密連線升級為安全連線來啟動 TLS。

簽章
int ndb_mgm_start_tls
  (
    NdbMgmHandle handle
  )
參數
handle

管理伺服器處理常式 (NdbMgmHandle)。

回傳值

成功時為 0

ndb_mgm_cert_table

描述

ndb_mgm_cert_table 是一個描述 TLS 用戶端會話的連結結構。

定義
struct ndb_mgm_cert_table 
  {
    Uint64 session_id;
    char *peer_address;
    char *cert_serial;
    char *cert_name;
    char *cert_expires;
    struct ndb_mgm_cert_table *next;
  }
成員
session_id

TLS 會話 ID

peer_address

建立連線的主機

cert_serial

憑證序號

cert_name

憑證名稱

cert_expires

憑證到期日

next

指向列表中下一個 ndb_mgm_cert_table 的指標

ndb_mgm_tls_stats

描述

ndb_mgm_tls_stats 結構會儲存與 TLS 相關的伺服器統計資料。

定義
struct ndb_mgm_tls_stats 
  {
    Uint32 accepted; 
    Uint32 upgraded; 
    Uint32 current; 
    Uint32 tls; 
    Uint32 authfail; 
  }
成員
accepted

接受的用戶端連線總數

upgraded

升級至 TLS 的用戶端連線數

current

目前開啟的用戶端會話總數

tls

目前使用 TLS 開啟的用戶端會話數

authfail

授權失敗總數