SSL加密

Nebula Graph支持在客户端、Graph服务、Meta服务和Storage服务之间进行SSL加密传输,本文介绍如何设置SSL加密。

注意事项

开启SSL加密会轻微影响性能。

参数介绍

参数默认值说明
cert_path-PEM证书的路径。
key_path-密钥证书的路径。
password_path-密码文件证书的路径。
ca_path-受信任CA证书文件的路径。
enable_sslfalse是否开启SSL加密。
enable_graph_sslfalse是否仅在Graph服务上开启SSL加密。
enable_meta_sslfalse是否仅在Meta服务上开启SSL加密。

证书模式

为了使用SSL加密,必须有SSL证书。Nebula Graph支持两种证书模式:

  • 自签名证书模式

    需要自行制作签名证书。需要根据加密策略,在对应的配置文件内设置cert_pathkey_pathpassword_path

  • CA签名证书模式

    需要在认证机构(Certificate Authority)申请签名证书。需要根据加密策略,在对应的配置文件内设置cert_pathkey_pathca_path

加密策略

Nebula Graph支持三种加密策略。加密涉及的具体进程请参见详细说明

  • 对客户端、Graph服务、Meta服务和Storage服务之间的传输数据加密。

    需要修改nebula-graphd.confnebula-metad.confnebula-storaged.conf配置文件,设置enable_ssl = true

  • 对客户端和Graph服务之间的传输数据加密。

    适用于集群设置在同一个机房内,仅对外开放Graph服务的端口。因为其他服务可以通过内部网络通信,无需加密。需要修改nebula-graphd.conf配置文件,设置enable_graph_ssl = true

  • 对集群中Meta服务相关的传输数据加密。

    适用于向meta服务传输需保密的信息。需要修改nebula-graphd.confnebula-metad.confnebula-storaged.conf配置文件,设置enable_meta_ssl = true

使用方式

  1. 确认证书模式和加密策略。

  2. 在对应的配置文件内增加证书配置和策略配置。

    例如使用自签名证书,并对客户端、Graph服务、Meta服务和Storage服务之间的数据传输进行加密。需要对三个配置文件都进行如下设置:

    1. --cert_path=xxxxxx
    2. --key_path=xxxxx
    3. --password_path=xxxxxx
    4. --enable_ssl=true
  3. 客户端设置安全套接字并添加受信任的CA。示例代码请参见nebula-test-run.py


最后更新: October 15, 2021