TLS 可用于保护 NDB 集群 8.3 及更高版本中的网络通信。由 TLS 保护的 NDB 传输器连接使用 TLS 双向身份验证,其中每个节点验证其对等节点的证书。节点证书也可以绑定到特定主机名;在这种情况下,对等节点仅在可以验证主机名的情况下才授权证书。
节点自己的证书文件包含它用来验证其对等节点证书的整个信任链。这通常仅包括它自己的证书和颁发机构证书,但可能包含其他颁发机构。由于 NDB 集群被认为是一个信任域,因此颁发机构的范围应限制为单个集群。
为了获得签名的节点证书,首先需要创建一个证书颁发机构 (CA)。部署 TLS 时,每个节点都有一个经过 CA 签名的真实证书。只有管理员 (DBA) 应该可以访问用于创建有效节点证书的私有 CA 签名密钥。
默认情况下,将为管理和 API 节点证书创建主机名绑定。由于 NDB 集群数据节点已经是节点 ID 分配的一部分,因此默认行为是不为 TLS 添加额外的主机名检查。
证书在到期日期到达后将不再有效。为了最大程度地减少证书到期对系统可用性的影响,集群应该具有多个到期日期交错的证书;客户端证书应最早到期,其次是数据节点证书,最后是管理服务器证书。为了方便交错到期,每个证书都与节点类型相关联;给定节点仅使用适当类型的密钥和证书。
私钥是在本地创建的;包含私钥的文件的复制被最小化。私钥和证书都被标记为活动(当前)或待处理。可以旋转密钥,以允许待处理密钥在活动密钥过期之前替换活动密钥。
由于可能涉及大量文件,因此 NDB 遵循用于存储密钥、签名请求和证书的文件的几个命名约定。这些名称不可用户配置,但用户可以确定存储这些文件的目录。
默认情况下,NDB 集群 CA 私钥受密码保护,在创建签名的节点证书时必须提供该密码。节点私钥以未加密的方式存储,以便它们可以在节点启动时自动打开。私钥文件是只读的(Unix 文件模式 0400)。