欢迎访问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/




