使用 SSL 连接数据库
本小节主要介绍在 PostgreSQL 客户端和服务端均开启 SSL 加密的情况下,如何使用 SSL 连接数据库。
前提条件
-
已获取管理控制台登录账号和密码,且已获取集群操作权限。
-
已创建灾备集群且集群状态为
活跃
。 -
集群已开启 SSL 加密。
操作步骤
-
登录至 PostgreSQL 客户端。
-
执行如下命令,连接 PostgreSQL 数据库。
psql "sslmode=allow user=<user_name> host=<localhost> dbname=<database_name>"
参数说明:
-
sslmode
:用于指定数据库连接时使用的 SSL 加密模式,可选择allow
、prefer
、require
、verify-ca
或verify-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-ca
或 verify-full
时,需要配置 Root certificate
参数,用于设置数据库 CA 证书的路径。
可在集群详情页面的 SSL 证书页签查看 CA 证书,SSL 证书提供⾼可⽤写 IP 和⾼可⽤读 IP 两个地址的保护。