1.Base基础/3.Icon图标/操作/search备份
1.Base基础/3.Icon图标/操作/search备份
EN
文档
关于AntDB
部署与升级
快速入门
使用教程
调优
工具和插件
高级服务
数据安全
参考
  • 文档首页 /
  • 运维 /
  • 集中式运维手册 /
  • 数据库安全设置

数据库安全设置

更新时间:2024-07-01 14:39:42

配置 SSL 连接访问

前提条件:

准备好 ssl 证书文件:

  • 根证书文件:root.crt
  • 服务器证书文件:server.crt
  • 服务器私钥文件:server.key
  • 客户端证书文件:client.crt
  • 客户端私钥文件:client.key

配置步骤:

  • 将准备好服务器证书文件(根证书文件、服务端证书文件、服务端私钥文件)上传到服务器上(主备节点配置方法相同),如下:
[antdb2@host227 ssl_file]$ ll
total 12
-rw-rw-r-- 1 antdb2 antdb2 1220 Apr 17 11:14 root.crt
-rw-rw-r-- 1 antdb2 antdb2 1220 Apr 17 11:14 server.crt
-rw------- 1 antdb2 antdb2 1679 Apr 17 11:14 server.key

修改 server.key 的权限设置为 0600,否则后面重启会失败。

 chmod 0600 server.key
  • 修改主节点上 postgresql.conf 文件,设置参数如下,数据库参数的设置方法请参看上面【集群参数修改】章节:

这些文件是第一步上传到服务上的 3 个文件:

ssl = on  #启用ssl连接
ssl_ca_file = '/data/antdb2/ssl_file/root.crt' #指定包含SSL服务器证书颁发机构(CA)的文件的名称
ssl_cert_file = '/data/antdb2/ssl_file/server.crt' #指定包含SSL服务器证书的文件的名称
ssl_key_file = '/data/antdb2/ssl_file/server.key' #指定包含SSL服务器私钥的文件的名称

这里,也可以配置相对路径,用户可以自己选择。

例如,用户在第一步将文件上传到数据库的数据目录(即与 postgresql.conf 同一级的目录),则可以配置如下。

ssl = on
ssl_ca_file = 'root.crt'
ssl_cert_file = 'server.crt'
ssl_key_file = 'server.key'
  • 创建用户:

创建的用户名是 antdb,因为上面的证书与 antdb 用户绑定,需要在用户生成证书的时候确定。

CREATE USER antdb login;
  • 在 hba 文件中增加访问控制;

例如:允许所有主机上以 antdb 用户使用 SSL 加密连接到数据库,则配置如下:

hostssl   all   antdb    0.0.0.0/0     cert
  • 重启节点,使 ssl 相关参数和 hba 文件的修改都生效。
--非高可用环境重启:
adb_ctl restart -D /data/antdb2/pgdata_adb
--高可用环境重启:
adbhamgrctl -c /etc/adbhamgr.yml restart postgres-cluster --force
  • 将准备的 ssl 文件(根证书文件、客户端证书文件、客户端私钥文件)上传到客户端主机上:
client.crt
client.key
root.crt

更改权限:

chmod 0600 client.key
  • 在客户端上连接主节点,指定客户端的证书文件。
psql --dbname="host=10.20.16.227 user=antdb port=40571 dbname=postgres sslmode=verify-ca sslrootcert=root.crt sslcert=client.crt  sslkey=client.key"

例如:

[antdb2@host227 ~]$ psql --dbname="host=10.20.16.227 user=antdb port=40571 dbname=postgres sslmode=verify-ca sslrootcert=root.crt sslcert=client.crt  sslkey=client.key"
psql (13.3)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.

antdb=>
问题反馈