如果使用云端证书或自定义证书开启SSL链路加密,则表示在SSL链路中,客户端验证数据库的真实性。如果您需要数据库也验证客户端的真实性,还需要配置客户端CA证书,本文介绍配置客户端CA证书的具体操作。
前提条件
- 已完成快速配置SSL加密或配置自定义证书。
- 已安装OpenSSL工具。
说明 如果您使用Linux系统,系统会自带OpenSSL工具,无需安装。如果您使用Windows系统,请获取OpenSSL软件包并安装。
注意事项
- 配置客户端CA证书后,已有连接需要断开重连,加密才会生效。
- 配置客户端CA证书、更改客户端CA证书内容、修改客户端证书吊销列表,将会重启您的数据库实例,用时约3分钟左右,请在业务低峰期操作。
步骤一:获取客户端证书
本文以CentOS系统配置为例,如果您使用Windows操作系统,操作步骤中的openssl
命令与CentOS系统中的openssl
命令配置相同。
完成以上配置后,将获得如下文件:
- client.crt:客户端证书文件。
- client.key:客户端私钥文件。
- ca1.crt:自签名证书。
- ca1.key:自签名证书私钥。
步骤二:配置客户端CA证书
说明 配置客户端CA证书后,实例的运行状态将会变更为修改SSL中,该状态将持续三分钟左右,请耐心等待运行状态变更为运行中后再进行后续操作。
步骤三:客户端连接数据库
RDS PostgreSQL数据库支持以下方式通过SSL远程连接:
步骤四:(可选)配置证书吊销文件
如果您不再使用某一客户端证书时,可以将客户端证书吊销,数据库将拒绝此客户端登录。
说明 配置证书吊销文件后,实例的运行状态将会变更为修改SSL中,该状态将持续三分钟左右,请耐心等待运行状态变更为运行中后再进行后续操作。
步骤五:(可选)更新客户端证书
说明 更新证书会重启实例,请谨慎操作。
如果您需要更新证书,可以在SSL页面单击清除客户端CA证书按钮,清除客户端CA后,重新单击启用客户端CA证书。

步骤六:(可选)配置ACL
在配置客户端CA证书后,您可以在RDS PostgreSQL实例中配置ACL控制客户端的访问,此时客户端必须携带客户端证书和私钥并通过客户端对应认证方式的验证才能连接数据库。
说明
- 配置ACL期间,PostgreSQL数据库实例将不能操作,用时约1分钟左右,请您耐心等待。
- 如果在RDS PostgreSQL数据库未设置客户端访问控制(默认prefer),客户端可以使用
PGSSLMODE=disable
来实现非SSL方式连接数据库。当需要禁止非SSL连接时,请确保在开启SSL链路加密后将ACL配置为除prefer以外的其他认证方式。
单击配置ACL或配置ReplicationACL后的修改,选择不同的客户端连接控制模式。

RDS PostgreSQL支持配置的认证方法及其验证规则如下:
- cert:使用证书代替密码登录,加密数据链路,同时检查客户端证书真伪,检查证书CN与数据库用户名匹配。
- prefer:加密数据链路。客户端使用PGSSLMODE=disable时, 可以通过非加密方式连接数据库。
- verify-ca:加密数据链路,同时检查客户端认证真伪。
- verify-full(RDS PostgreSQL 12以上支持):加密数据链路,同时检查客户端认证真伪,检查证书CN与数据库用户名匹配。