Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add ssl #1039

Merged
merged 1 commit into from
Oct 11, 2021
Merged

add ssl #1039

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions docs-2.0/7.data-security/4.ssl.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# SSL加密

Nebula Graph支持在客户端、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证书。Nebula Graph支持两种证书模式:

- 自签名证书模式

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

- CA签名证书模式

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

## 加密策略

Nebula Graph支持三种加密策略。加密涉及的具体进程请参见[详细说明](https://github.com/vesoft-inc/nebula/blob/a67d166b284cae1b534bf8d19c936ee38bf12e29/docs/rfcs/0001-ssl-transportation.md#usage-explanation)。

- 对客户端、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`。

## 使用方式

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

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

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

```bash
--cert_path=xxxxxx
--key_path=xxxxx
--password_path=xxxxxx
--enable_ssl=true
```

3. 客户端设置安全套接字并添加受信任的CA。示例代码请参见[nebula-test-run.py](https://github.com/vesoft-inc/nebula/blob/{{nebula.branch}}/tests/nebula-test-run.py)。
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ extra:
master: master
base20: 2.0
base200: 2.0.0
branch: master
version:
method: mike
social:
Expand Down