本小节主要介绍在 PostgreSQL 客户端和服务端均开启 SSL 加密的情况下,如何使用 SSL 连接数据库。

前提条件

  • 已获取管理控制台登录账号和密码,且已获取集群操作权限。

  • 已创建灾备集群且集群状态为活跃

  • 集群已开启 SSL 加密。

操作步骤

  1. 登录至 PostgreSQL 客户端。

  2. 执行如下命令,连接 PostgreSQL 数据库。

    psql "sslmode=allow user=<user_name> host=<localhost> dbname=<database_name>"

    参数说明:

    • sslmode:用于指定数据库连接时使用的 SSL 加密模式,可选择 allowpreferrequireverify-caverify-full。默认值是 prefer。若客户端不使用 SSL 连接,则 sslmode设置为 disable。详细说明可参考 sslmode 值及作用相关内容。

    • user:登录数据库的用户名,可在相应数据库详情页面的账户页签进行查看。

    • host:数据库节点的 IP 或者双节点集群的 VIP。

    • dbname:数据库的名称,默认有一个名为 postgres 的数据库。

sslmode 值及作用

sslmode 值 说明及作用

disable

客户端不使用 SSL 连接,数据传输过程中将不会进行加密。

allow

客⼾端将尝试建⽴ SSL/TLS 连接,但如果服务器不⽀持 SSL/TLS 连接,客⼾端将以普通⽂本⽅式连接。

prefer

默认模式,客⼾端将⾸先尝试建⽴ SSL 连接,如果服务器不⽀持SSL连接,则以普通⽂本⽅式连接。

require

客⼾端只尝试 SSL 连接,只对数据链路加密,并不验证服务器证书的有效性。若服务器不支持 SSL ,将会连接失败。

verify-ca

客⼾端只使⽤ SSL 加密连接到服务器,并验证服务器 SSL 证书的有效性。若服务器 SSL 证书无效,将会连接失败。

verify-full

客⼾端使⽤ SSL 加密连接到服务器,并验证服务器证书的有效性,同时⽐对证书内的 CN 或 DNS 与连接时配置的数据库连接地址是否⼀致。

当 sslmode 取值为 verify-caverify-full 时,需要配置 Root certificate 参数,用于设置数据库 CA 证书的路径。

可在集群详情页面的 SSL 证书页签查看 CA 证书,SSL 证书提供⾼可⽤写 IP 和⾼可⽤读 IP 两个地址的保护。

ssl conf 3