SSL 传输加密
功能概述
使⽤ SSL 加密通信可确保客⼾端和服务器之间的所有通信都经过加密,防⽌数据泄露或篡改,确保数据的安全与完整性。PostgreSQL 集群默认关闭 SSL。
操作步骤
开启 SSL 传输加密
将配置参数 ssl 修改为 true,即可开启 SSL 传输加密。详情参考如何修改配置参数。
使用 SSL 连接数据库
在客户端服务器终端,执行如下命令行,连接 PostgreSQL 数据库。
-
命令行
psql "sslmode=allow user=<user_name> host=<localhost> dbname=<database_name>" -
命令行参数说明
选项 说明 sslmode
用于指定数据库连接时使用的 SSL 加密模式。可选值及其说明如下。
-
allow表示客⼾端将尝试建⽴ SSL/TLS 连接,但如果服务器不⽀持 SSL/TLS 连接,客⼾端将以普通⽂本⽅式连接。 -
prefer默认模式,客⼾端将⾸先尝试建⽴ SSL 连接,如果服务器不⽀持 SSL 连接,则以普通⽂本⽅式连接。 -
require表示客⼾端只尝试 SSL 连接,只对数据链路加密,并不验证服务器证书的有效性。若服务器不支持 SSL,将会连接失败。 -
verify-ca表示客⼾端只使⽤ SSL 加密连接到服务器,并验证服务器 SSL 证书的有效性。若服务器 SSL 证书无效,将会连接失败。 -
verify-full表示客⼾端使⽤ SSL 加密连接到服务器,并验证服务器证书的有效性,同时⽐对证书内的 CN 或 DNS 与连接时配置的数据库连接地址是否⼀致。 -
disable表示客户端不使用 SSL 连接,数据传输过程中将不会进行加密。 -
当取值为
verify-ca或verify-full时,需要配置Root certificate参数,用于设置数据库 CA 证书的路径。
user
登录数据库的用户名,可在相应数据库详情页面进行查看。
host
数据库节点的 IP 或者双节点集群的 VIP。
dbname
数据库的名称,默认有一个名为
postgres的数据库。 -
查看客户端是否开启 SSL 加密
在客户端服务器终端,执行如下命令行,查看客户端是否开启 SSL 加密。
-
使用 SSL 连接数据库时,连接成功后,返回如下提示信息,则表示客户端已开启 SSL 加密。
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
-
连接至数据库后,执行如下命令,查询
pg_stat_ssl视图,若返回结果中有相应的链接信息,则说明客户端已开启 SSL 加密。SELECT * FROM pg_stat_ssl;