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

Gbase 8a客户端接入认证

VV_刺头王 2022-03-23
799

    为了保护敏感数据传输的安全性,GBase 8a MPP Cluster 支持通过 SSL 加密客户端和服务器之间的通讯。SSL 协议是一种安全性更高的协议标 准,它加入了数字签名和数字证书来实现客户端和服务器的双向身份验证,保证了 通信双方更加安全的数据传输。  前提条件: 加密功能要求系统中安装 openssl 库,能够执行 openssl 命令。

生成 SSL 连接证书操作步骤 :

在集群 server 端的系统中,根据需要选择生成 SSL 密钥的目录,以路径/usr/local/ssl为例。

生成 server 端的密钥和证书 :

步骤 1

执行如下命令,进入目录

$ cd /usr/local/ssl

步骤 2

生成 ca-cert.pem,需要填写 Country Name 等信息,可以按照下面方式填写

$ openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem >ca-cert.pem

生成密钥,同样填写一些信息,password 部分(A challenge password []: )建议填写复杂一些的密码。

$ openssl req -sha1 -newkey rsa:2048 -days 730 -nodes -keyout server-key.pem > server-req.pem

步骤 3

将 server-key.pem 导出为 RSA 类型。

$ openssl rsa -in server-key.pem -out server-key.pem

writing RSA key

步骤 4

生成 server-cert.pem。

$ openssl x509 -sha1 -req -in server-req.pem -days 730 -CA ca-cert.pem

-CAkey ca-key.pem -set_serial 01 > server-cert.pem

 

生成 client 端的密钥和证书 :

步骤 1

在同一目录下,生成 client 端的密钥和证书,生成密钥,输入信息与 server 端相同。

$ openssl req -sha1 -newkey rsa:2048 -days 730 -nodes -keyout client-key.pem > client-req.pem

步骤 2

将 client-key.pem 导出为 RSA 类型。

$ openssl rsa -in client-key.pem -out client-key.pem

writing RSA key

步骤 3

生成 client-cert.pem。

$ openssl x509 -sha1 -req -in client-req.pem -days 730 -CA ca-cert.pem

-CAkey ca-key.pem -set_serial 01 > client-cert.pem

server 配置 :

操作步骤

步骤 1

修改集群配置文件 gbase_8a_gcluster.cnf,在[gbased]里添加 ssl 信息。以路径

/usr/local/ssl 为例,添加示例如下:

$ vi $GCLUSTER_BASE/config/gbase_8a_gcluster.cnf

[client]

port=5258

socket=/tmp/gcluster_5258.sock

connect_timeout=43200

#default-character-set=gbk

[gbased]

basedir = /opt/gcluster/server

datadir = /opt/gcluster/userdata/gcluster

socket=/tmp/gcluster_5258.sock

pid-file = /opt/gcluster/log/gcluster/gclusterd.pid

#default-character-set=gbk

ssl-ca=/usr/local/ssl/ca-cert.pem

ssl-cert=/usr/local/ssl/server-cert.pem

ssl-key=/usr/local/ssl/server-key.pem

log-error

port=5258

core-fil

步骤 2

查看配置是否成功,重启集群。

#gcluster_services all restart

步骤 3

执行 gccli,登录集群。

$ gccli -uroot

GBase client 9.5.2.13.113642. Copyright (c) 2004-2020, GBase. All Rights Reserved.

步骤 4  

查看 ssl 参数状态,配置成功则显示为“YES”。

gbase> show variables like 'have_%ssl';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| have_openssl | YES |

| have_ssl | YES |

+---------------+-------+

2 rows in set

 client 配置 :

操作步骤

步骤 1

将 server 端生成的 ca-cert.pem,client-req.pem,client-key.pem,client-cert.pem 拷贝 到 client 端,修改集群配置文件 gbase_8a_gcluster.cnf,在[client]里添加 ssl 信息,以 路径/usr/local/ssl 为例,如下示例中横线划出所示:

$ vi $GCLUSTER_BASE /config/gbase_8a_gcluster.cnf

[client]

port=5258

socket=/tmp/gcluster_5258.sock

connect_timeout=43200

#default-character-set=gbk

ssl-ca=/usr/local/ssl/ca-cert.pem

ssl-cert=/usr/local/ssl/client-cert.pem

ssl-key=/usr/local/ssl/client-key.pem

[gbased]

basedir = /opt/gcluster/server

datadir = /opt/gcluster/userdata/gcluster

socket=/tmp/gcluster_5258.sock

pid-file = /opt/gcluster/log/gcluster/gclusterd.pid

#default-character-set=gbk

log-error

port=5258

core-file

步骤 2

通过 client 端远程访问 server。例如用 ssluser 用户登录 192.168.134.131 的 server:

[gbase@localhost config]$ gccli -h192.168.134.131 -ussluser -p

Enter password:

步骤 3

运行 status 命令,ssl 部分显示有“Cipher in use”,表示 ssl 加密连接成功,具体示例如下:

[gbase@localhost config]$ gccli -h192.168.134.131 -ussluser -p

Enter password:

步骤 4

如果 client 端没有进行上述配置,则仍然会按默认方式连接 server。可以通过如下参数,强制要求必须使用 SSL。

grant all on testdb.* to ssl_user require ssl ;

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

评论