暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分布式数据库学习Note202:OceanBase社区版中,什么是ODP 传输加密?

欢迎访问OceanBase官网获取更多信息:https://www.oceanbase.com/


本文主要介绍了 ODP 传输加密的设置方法。

版本信息

ODP 从 1.8.1 版本开始提供 SSL 功能。使用 -V 参数可以查看 ODP 的版本信息。

在 ODP 的安装路径下执行如下命令可以查看 ODP 的版本信息。示例如下:

./bin/obproxy -V
obproxy (OceanBase 1.8.1 3870.el6)
REVISION: 3870-local-8df895b0912b58dea3986320baeda7803bf57bd1
BUILD_TIME: Nov  2 2020 21:53:06
BUILD_FLAGS: -g -O2 -D_OB_VERSION=1000 -D_NO_EXCEPTION -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DNDEBUG -D__USE_LARGEFILE64 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -Wall -Werror -Wextra -Wunused-parameter -Wformat -Wconversion -Wno-deprecated -Wno-invalid-offsetof -finline-functions -fno-strict-aliasing -mtune=core2 -Wno-psabi -Wno-sign-compare -DGCC_52 -DUSE_POSIX_FALLOCATE -DSUPPORT_SSE4_2 -DHAVE_SCHED_GETCPU -DHAVE_REALTIME_COARSE -DOB_HAVE_EVENTFD -DHAVE_FALLOCATE -DHAVE_MINIDUMP

设置密钥与证书

目前仅支持文件设置方式。

配置只对新建的连接起作用,已有的连接不受影响。配置及时生效,无需重启。

使用 ODP 的 root@proxysys 账号登录后,通过文件设置证书、公钥、私钥。示例如下:

obclient> UPDATE proxyconfig.security_config SET CONFIG_VAL= '{"sourceType" : "FILE", "CA" : "certs/ca.pem", "publicKey" : "certs/server-cert.pem", "privateKey" : "certs/server-key.pem"}' WHERE APP_NAME = 'obproxy' and VERSION = '1';

其中 sourceType 字段必须设为 FILE,CA 表示 CA 证书的存放位置,publicKey 表示公钥证书的存放位置,privateKey 表示私钥证书的存放位置。

通过 SELECT 语句查看 ODP 的证书、公钥、私钥是否设置。示例如下:

obclient> SELECT CONFIG_VAL FROM proxyconfig.security_config WHERE APP_NAME = 'obproxy';
+---------------+
| CONFIG_VAL    |
+---------------+
| SSL INFO FILE |
+---------------+
1 row in set (0.00 sec)

配置与客户端之间的 SSL 连接

enable_client_ssl 配置项控制客户端和 ODP 是否开启 SSL 连接,默认值为 false,表示与客户端之间不使用 SSL 连接。

当 enable_client_ssl 配置项为 true 时,表示 ODP 可以给客户端提供 SSL 功能。

配置只对新建的连接起作用,已有的连接不受影响。配置及时生效,无需重启。

客户端与 ODP 若想成功建立 SSL 连接,还需要客户端本身支持 SSL 功能。例如,对于 MySQL 官方客户端程序( mysql )的话,需要检查相应的程序版本是否支持 SSL 功能。

使用客户端登录 ODP 后,可以发送 '\s' 串查看 SSL 字段值,通过此字段可以查看客户端与 ODP 之间的连接是否使用 SSL 功能。

  • 当 SSL 字段的值不为 Not in use 时,则表示客户端与 ODP 之间的连接使用了 SSL 功能。

  • 当 SSL 字段的值为 Not in use 时,表示客户端与 ODP 之间的连接未使用 SSL 功能。

示例如下:

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@11.166.79.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:   100.83.6.189 via TCP/IP
Server characterset:  utf8mb4
Db     characterset:  utf8mb4
Client characterset:  utf8mb4
Conn.  characterset:  utf8mb4
TCP port:   13213
Active      --------------

配置与服务端之间的 SSL 连接

配置项 enable_server_ssl 控制 ODP 和 OBServer 是否开启 SSL 连接,默认值为 false,表示和服务端之间不开启 SSL。

当 enable_server_ssl 为 true 时,表示 ODP 可以和 OBServer 开启 SSL 功能。

配置只对新建的连接起作用,已有的连接不受影响。配置及时生效,无需重启。


欢迎访问OceanBase官网获取更多信息:https://www.oceanbase.com/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论