observer以及odp启用传输加密的疑问

observer以及odp启用传输加密的疑问:

1、下面语句中的APP_NAME是指ODP的集群名称?

2、update proxyconfig.security_config 后查看proxyconfig.security_config的信息是否更新正确?

3、启用加密传输observer以及odp相关证书的文件目录以及证书文件、目录权限要求?

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 = 'odp4' and VERSION = '1';

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218260

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218259

4、参考上面的文档配置,启动传输加密,使用2881端口 --ssl可以登录,切换为2883端口提示ERROR 1045 (42000): Access denied for user ‘TEST’@‘xxx.xxx.xxx.xxx’ (using password: YES)

ODP配置, 相关证书也拷贝至obproxy的安装目录下的certs

MySQL [oceanbase]> show proxyconfig like '%enable_%ssl%';
+-------------------+-------+-------------------------------------------------------------+-------------+---------------+
| name              | value | info                                                        | need_reboot | visible_level |
+-------------------+-------+-------------------------------------------------------------+-------------+---------------+
| enable_server_ssl | True  | if enabled, proxy will try best to connect server whith ssl | false       | SYS           |
| enable_client_ssl | True  | if enabled, proxy will try best to connect client with ssl  | false       | SYS           |
+-------------------+-------+-------------------------------------------------------------+-------------+---------------+

MySQL [oceanbase]> SELECT CONFIG_VAL FROM proxyconfig.security_config where app_name='odp4';
+----------------+
| CONFIG_VAL     |
+----------------+
| SSL INFO VALID |
+----------------+

@论坛小助手

1 个赞

针对您提出的关于Observer以及ODP启用传输加密的问题,以下是详细的解答:

  1. APP_NAME是否指ODP的集群名称?

    • 根据文档 [1][2]APP_NAME字段指的是ODP的应用名称,通常情况下就是ODP的集群名称。在您的例子中,APP_NAME = 'odp4',意味着这条命令是针对名为odp4的ODP集群进行配置的。
  2. 更新proxyconfig.security_config后如何确认信息更新正确?

    • 您可以通过执行SELECT CONFIG_VAL FROM proxyconfig.security_config WHERE APP_NAME = 'odp4';来检查更新是否成功 [2]。如果更新成功,CONFIG_VAL应该显示为您设置的新值,例如'{"sourceType" : "FILE", "CA" : "certs/ca.pem", "publicKey" : "certs/server-cert.pem", "privateKey" : "certs/server-key.pem"}'
  3. 关于证书文件目录及权限要求:

    • 文档中没有明确提到证书文件的具体目录要求,但是根据示例,证书文件通常存放在certs/目录下 [1], [2]。至于权限要求,虽然文档中没有具体说明,但是一般来说,确保OceanBase进程拥有读取这些证书文件的权限即可。通常这意味着证书文件所在的目录至少需要对OceanBase进程所属用户组具有读权限。
  4. 关于使用2883端口提示错误的问题:

    • 根据您提供的信息,您已经成功启用了客户端和服务端的SSL,并且能够通过2881端口使用--ssl选项连接。但是当尝试使用2883端口时遇到了认证失败的问题。这可能是由于客户端连接时使用的证书或配置不正确导致的。请确保客户端连接时使用的证书与服务器端配置的证书一致,并且客户端的SSL配置正确无误。此外,考虑到2883端口通常是ODP的默认端口,建议检查是否有其他特定于ODP的配置或安全策略影响了连接。

综上所述,确保您的证书配置正确无误,并且客户端和服务端的证书一致是解决问题的关键。如果问题仍然存在,建议进一步检查客户端的连接参数和ODP的安全配置。

具体信息可参考以下文档:

  1. 安全和协议
  2. ODP 传输加密
  3. 数据传输加密
  4. OBServer 传输加密
  5. observer_sys_password1
  6. observer_sys_password
  7. 添加 OBProxy
2 个赞
  1. app_name 是 obproxy 的名称.
show proxyconfig like 'app_name';
  1. 如果通过 odp 的2883 端口 开启ssl 连接,那还需要配置 odp 到observer的传输加密。此时 odp 是observer的客户端。
    详情参考: OceanBase 4.2 等保认证 SSL 验收测试 (qq.com)
3 个赞

:+1:

1 个赞

如果您还有其他问题或需要进一步的帮助,请随时告诉我!我很乐意继续为您提供支持。无论是关于 OceanBase 的具体配置问题,还是使用过程中遇到的任何疑问,都可以随时提问。+1 表示鼓励和肯定,感谢您的认可!

详情请参考:

  1. 数据导入策略与最佳实践
  2. NEG
  3. 赋值运算符
  4. SECOND
  5. CEILING
  6. 创建资源单元规格
  7. OCT
  8. IFNULL

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

1 个赞

是启用了配置了,下面这个语句 and VERSION = ‘1’;不加上这个条件会报错,怎么查看proxyconfig.security_config更新的对不对?

执行了多次之前有时候配置执行APP_NAME写错了会有影响?

UPDATE proxyconfig.security_config SET CONFIG_VAL= ‘{“sourceType” : “FILE”, “CA” : “wallet/ca.pem”, “publicKey” : “wallet/client-cert.pem”, “privateKey” : “wallet/client-key.pem”}’ WHERE APP_NAME = ‘odp4’ and VERSION = ‘1’;

1 个赞
select * from proxyconfig.security_config where app_name='obproxy';

obproxy 对 sql 兼容性水平很低。实在更新多次感觉有影响, 重搭一下这个 obproxy。

1 个赞

语句查询不出来,得重新拉一个 :joy:

MySQL [(none)]> select * from proxyconfig.security_config where app_name='odp4';
+----------------+
| CONFIG_VAL     |
+----------------+
| SSL INFO VALID |
+----------------+

更新多次感觉有影响,建议重新搭建一个obproxy,搭建好后面在试一下 看看是否还有类似的问题

这里有有一个小疑问:启动ODP,用户也启用x509,直接2883不用证书,直接–ssl就可以登录?

[root@server062 certs]#  mysql -h10.0.0.63 -uu_x509@obmysql#obv4 -P2883 -p'abc@ABC#123' -c -A oceanbase --ssl -e "\s" |egrep "SSL"
SSL:                    Cipher in use is ECDHE-RSA-AES256-GCM-SHA384
1 个赞

是的。
我推测原因是因为用户的客户端并不是直接跟 observer 链接,而是跟 odp 链接。跟odp 链接并不用x509, odp跟observer链接用x509 。
那这种用法有啥用呢?我想如果把odp 部署在应用客户端上,odp到observer之间如果经过一段不那么安全的网络,就有用了。

也可能是我使用方法不对。

类似的疑惑…

配置了传输加密,应用代码侧怎么配置呢?