SSL 加密¶
NebulaGraph 支持在客户端、Graph 服务、Meta 服务和 Storage 服务之间进行 SSL 加密传输,本文介绍如何设置 SSL 加密。
注意事项¶
开启 SSL 加密会轻微影响性能。
参数介绍¶
参数 | 默认值 | 说明 |
---|---|---|
cert_path |
- | PEM 证书的路径。 |
key_path |
- | 密钥证书的路径。 |
password_path |
- | 密码文件证书的路径。 |
ca_path |
- | 受信任 CA 证书文件的路径。 |
enable_ssl |
false |
是否开启 SSL 加密。 |
enable_graph_ssl |
false |
是否仅在 Graph 服务上开启 SSL 加密。 |
enable_meta_ssl |
false |
是否仅在 Meta 服务上开启 SSL 加密。 |
证书模式¶
为了使用 SSL 加密,必须有 SSL 证书。NebulaGraph 支持两种证书模式:
-
自签名证书模式
需要自行制作签名证书。需要根据加密策略,在对应的配置文件内设置
cert_path
、key_path
和password_path
。
-
CA 签名证书模式
需要在认证机构(Certificate Authority)申请签名证书。需要根据加密策略,在对应的配置文件内设置
cert_path
、key_path
和ca_path
。
加密策略¶
NebulaGraph 支持三种加密策略。加密涉及的具体进程请参见详细说明。
-
对客户端、Graph 服务、Meta 服务和 Storage 服务之间的传输数据加密。
需要修改
nebula-graphd.conf
、nebula-metad.conf
和nebula-storaged.conf
配置文件,设置enable_ssl = true
。
-
对客户端和 Graph 服务之间的传输数据加密。
适用于集群设置在同一个机房内,仅对外开放 Graph 服务的端口。因为其他服务可以通过内部网络通信,无需加密。需要修改
nebula-graphd.conf
配置文件,设置enable_graph_ssl = true
。
-
对集群中 Meta 服务相关的传输数据加密。
适用于向 meta 服务传输需保密的信息。需要修改
nebula-graphd.conf
、nebula-metad.conf
和nebula-storaged.conf
配置文件,设置enable_meta_ssl = true
。
使用方式¶
-
确认证书模式和加密策略。
-
在对应的配置文件内增加证书配置和策略配置。
例如使用自签名证书,并对客户端、Graph 服务、Meta 服务和 Storage 服务之间的数据传输进行加密。需要对三个配置文件都进行如下设置:
--cert_path=xxxxxx --key_path=xxxxx --password_path=xxxxxx --enable_ssl=true
-
客户端设置安全套接字并添加受信任的 CA。示例代码请参见 nebula-test-run.py。