3.2.10 TLS 函数

本节介绍的函数是在 NDB 8.3 中添加的,用于支持节点之间通信的传输层安全性。本节还包含有关其中一些函数使用的两个数据结构的信息。

有关 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

授权失败总数