---
title: "OBServer 传输加密 - OceanBase 数据库 V4.3.2 | OceanBase 文档中心"
description: OBServer 传输加密 OBServer 节点、liboblog、obadmin 等组件的底层通信均依赖 Libeasy 库，因此支持的私钥/证书加载方式均相同（本地文件模式），即将 CA 证书、用户证书、私钥放在 wallet 文件夹下，根据配置项开启时从该目录下读取加载。 开启方式 OBServer 传输加密…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.2

# OBServer 传输加密

更新时间：2024-09-29 23:00:00

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.2/zh-CN/600.manage/500.security-and-permissions/400.data-transfer-encryption/200.observer-in-transmission-encryption.md)  

OBServer 节点、liboblog、obadmin 等组件的底层通信均依赖 Libeasy 库，因此支持的私钥/证书加载方式均相同（本地文件模式），即将 CA 证书、用户证书、私钥放在 `wallet` 文件夹下，根据配置项开启时从该目录下读取加载。

## 开启方式

OBServer 传输加密的开启通过多个配置项配合使用。

1. 使用 root 用户登录数据库的 sys 租户。
 2. 指定私钥/证书/CA 证书的获取方式。

   #### 说明

   OceanBase 数据库社区版在配置 OBServer 传输加密时请忽略该步骤。

   ```sql
   ALTER SYSTEM SET ssl_external_kms_info = '
   {
   "ssl_mode":"file"
   }';

   ```
 3. 配置 MySQL 端口 SSL 通信。

   默认 MySQL 端口 SSL 通信是关闭的。先需要指定 SSL 协议的版本号后开启 SSL 通信，修改后实时生效。

      1. 可以通过配置项 `sql_protocol_min_tls_version` 指定 SSL 协议的版本号。目前支持的 SSL 协议的版本号包括 TLSv1、TLSv1.1、TLSv1.2 和 TLSv1.3，当指定版本号后，支持指定的版本号及其以上的版本协议。有关开启 SSL 连接的更多信息，请参见 [sql_protocol_min_tls_version](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001052612)。

        ```sql
        ALTER SYSTEM SET sql_protocol_min_tls_version = 'TLSv1.1';

        ```
      2. 可以通过配置项 `ssl_client_authentication` 开启 SSL 连接。有关开启 SSL 连接的更多信息，请参见 [ssl_client_authentication](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001052533)。

        ```sql
        --配置为 TRUE 后，MySQL 通信 SSL 即时开启
        ALTER SYSTEM SET ssl_client_authentication = 'TRUE';

        ```
 4. 配置 RPC 通信的 SSL 白名单，由于 OBServer 之间 TCP 连接都是长连接，因此需要重启 OBServer 后 RPC SSL 加密通信才能开启。

   ```sql
   --rpc 通信 ssl 需要配置白名单
   --整个集群都开启
   ALTER SYSTEM SET _ob_ssl_invited_nodes='ALL';
   --指定 ip 的 observer 开启 ssl
   ALTER SYSTEM SET _ob_ssl_invited_nodes='135.xxx.xx.xx, 128.xxx.xx.xx';

   ```

## OBServer 如何确定通信加密开启成功

最简单的方法是对 MySQL 端口和 RPC 端口进行抓包，查看是否开启加密，此外可以通过以下方式：

- OBClient/MySQL 客户端登录 OBServer，系统租户检索 `oceanbase.GV$OB_SERVERS` 视图的 `ssl_cert_expired_time` 字段确认是否开启。
 - 该字段记录当前 OBServer 开启 SSL 时，当前 OBServer 使用的 SSL 证书过期时间，utc 时间，单位微秒。

  ```shell
  obclient> select svr_ip, svr_port,zone, ssl_cert_expired_time, from_unixtime(ssl_cert_expired_time/1000000) from oceanbase.GV$OB_SERVERS;
  +--------------+----------+-------+----------------------+---------------------------------------------+
  | svr_ip       | svr_port | zone  | ssl_cert_expired_time | from_unixtime(ssl_key_expired_time/1000000) |
  +--------------+----------+-------+----------------------+---------------------------------------------+
  | 100.xx.xx.xx |    13212 | zone1 |           1871860075 | 2029-04-26 09:07:55                         |
  +--------------+----------+-------+----------------------+---------------------------------------------+
  1 row in set (0.00 sec)

  ```

### 检查 MySQL 端口是否开启 SSL

通过 MySQL 客户端/OBClient 登录，执行`\s`查看 SSL 字段的示例如下：

```shell
obclient> \s
--------------
obclient  Ver 1.1.8 Distrib 5.7.24, for Linux (x86_64) using  EditLine wrapper

Connection id:  3221506046
Current database: test
Current user:  root@xx.xx.xx.39
SSL:   Cipher in use is DHE-RSA-AES128-GCM-SHA256
Current pager:  less
Using outfile:  ''
Using delimiter: ;
Server version:  5.7.25 OceanBase 2.2.60 (r1-63cbd3084a3283523f09d6ba20795f77b95e046b) (Built Jun 30 2020 10:10:29)
Protocol version: 10
Connection:  xx.xx.xx.189 via TCP/IP
Server characterset: utf8mb4
Db     characterset: utf8mb4
Client characterset: utf8mb4
Conn.  characterset: utf8mb4
TCP port:  13213
Active   --------------

```

### 检查 RPC 端口是否开启 SSL

在 `OBServer.log` 中的日志，搜索关键字 “rpc connection accept” 查看 `use_ssl` 的值是 True 还是 False 来判定 RPC SSL 是否开启成功。

#### 说明

对于 RPC 连接，目前重启集群才能生效，或者不重启集群断开已有 RPC 连接才生效。

  上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
