数据通道 TLS
节点在查询等操作期间使用数据通道交换表数据。
节点间通信使用以下通道。在启用其他组件之前,必须按以下顺序启用其关联的组件和参数:
-
控制通道,以交换计划信息并分发调用。它是使用 Spread 实现的。有关详细信息,请访问 spread.org。
-
数据通道,以交换表数据。它是使用 TCP 实现的。
配置数据通道 TLS
此过程在 Vertica 节点之间配置 TLS,并使用预定义的 TLS 配置 data_channel
。要使用自定义 TLS 配置,请参阅 TLS 配置。
-
生成或导入以下项:
-
CA(证书颁发机构)证书。
例如,要创建自签名 CA 证书,请生成密钥并使用该密钥对 CA 证书进行签名:
=> CREATE KEY SSCA_key TYPE 'RSA' LENGTH 2048;
=> CREATE CA CERTIFICATE SSCA_cert SUBJECT '/C=US/ST=Massachusetts/L=Cambridge/O=Micro Focus/OU=Vertica/CN=Vertica Root CA' VALID FOR 3650 EXTENSIONS 'nsComment' = 'Self-signed root CA cert' KEY SSCA_key;
-
节点间 TLS 证书的私钥。
例如,使用 CREATE KEY 生成密钥:
=> CREATE KEY internode_key TYPE 'RSA' LENGTH 2048;
-
**节点间 TLS 证书。**这必须有一个以 CA 结尾的完整链,且必须是 x509v1 证书或使用
extendedKeyUsage
扩展serverAuth
和clientAuth
。例如,要生成
internode_cert
并使用SSCA_cert
对其进行签名:=> CREATE CERTIFICATE internode_cert SUBJECT '/C=US/ST=Massachusetts/L=Cambridge/O=Micro Focus/OU=Vertica/CN=data channel' SIGNED BY SSCA_cert EXTENSIONS 'nsComment' = 'Vertica internode cert', 'extendedKeyUsage' = 'serverAuth, clientAuth' KEY internode_key;
-
-
在
data_channel
TLS 配置中设置证书。对于数据通道 TLS,TLSMODE 自动设置为 VERIFY_CA,且不应更改。=> ALTER TLS CONFIGURATION data_channel CERTIFICATE internode_cert;
-
验证 InternodeTLSConfig 参数是否正在使用 TLS 配置:
=> SHOW CURRENT InternodeTLSConfig; level | name | setting ---------+--------------------+-------------- DEFAULT | InternodeTLSConfig | data_channel (1 row)
-
验证是否已使用 SECURITY_CONFIG_CHECK('NETWORK') 启用数据通道加密:
=> SELECT SECURITY_CONFIG_CHECK('NETWORK'); SECURITY_CONFIG_CHECK --------------------------- Spread security details: * EncryptSpreadComm = [vertica] Spread encryption is enabled It is now safe to set/change other security knobs Data Channel security details: TLS Configuration 'data_channel' TLSMODE is VERIFY_CA TLS on the data channel is enabled
特权
超级用户
限制
-
通常,您应在配置 data_channel 之前设置 EncryptSpreadComm。
-
对 data_channel 的更改将立即生效,且中断所有正在进行的查询,以更新节点之间的连接。