如果使用云端证书或自定义证书开启SSL链路加密,则表示在SSL链路中,客户端验证数据库的真实性。如果您需要数据库也验证客户端的真实性,还需要配置客户端CA证书,本文介绍配置客户端CA证书的具体操作。
前提条件
集群为PolarDB PostgreSQL版 14、15或以上版本,其中 PolarDB PostgreSQL版14要求内核版本大于等于14.10.21.0版本,主地址可允许配置自定义证书、客户端CA证书等。
集群的数据库代理版本要求至少为2.3.51版本,集群地址和自定义地址才允许配置自定义证书、客户端CA证书等。
已安装OpenSSL工具。
说明如果您使用Linux系统,系统会自带OpenSSL工具,无需安装。如果您使用Windows系统,请获取OpenSSL 软件包并安装。
注意事项
配置客户端CA证书后,已有连接需要断开重连,加密才会生效。
配置客户端CA证书、配置客户端证书吊销文件列表、关闭客户端CA证书、关闭客户端证书吊销文件列表,会存在连接闪断,请在业务低峰期间操作。
步骤一:获取客户端证书
本文以CentOS系统配置为例,如果您使用Windows操作系统,操作步骤中的openssl命令与CentOS系统中的openssl命令配置相同。
生成自签名证书(ca1.crt)和自签名证书私钥(ca1.key)。
openssl req -new -x509 -days 3650 -nodes -out ca1.crt -keyout ca1.key -subj "/CN=root-ca1"
生成客户端证书请求文件(client.csr)和客户端证书私钥(client.key)。
openssl req -new -nodes -text -out client.csr -keyout client.key -subj "/CN=<客户端用户名>"
说明该命令中 -subj 参数后的CN取值请配置为客户端访问数据库的用户名。
生成客户端证书(client.crt)。
openssl x509 -req -in client.csr -text -days 365 -CA ca1.crt -CAkey ca1.key -CAcreateserial -out client.crt
完成以上配置后,执行ls
命令,查看已生成的文件:
# ls
ca1.crt ca1.key ca1.srl client.crt client.csr client.key
关键文件解释如下:
client.crt:客户端证书文件。
client.key:客户端私钥文件。
ca1.crt:自签名证书。
ca1.key:自签名证书私钥。
步骤二:配置客户端 CA 证书
配置客户端CA证书后,集群的运行状态会变成修改SSL中,请耐心等待运行状态变更为运行中后再进行后续操作。如果您后续要更新客户端CA证书,也请参考如下步骤。
登录PolarDB管理控制台。
在页面左上角,选择集群所在地域。
找到目标集群,单击集群ID。
在左侧菜单栏中单击配置与管理 > 安全管理。
在SSL配置页签,选择您需要配置客户端CA证书的主地址或集群地址,然后单击对应的设置客户端CA证书按钮。
在设置客户端CA证书对话框中,选择状态为开启,然后将自签名证书文件(ca1.crt)内容填写到对话框中,然后单击确定按钮。
说明自签名证书文件(ca1.crt)获取方式请参见步骤一:获取客户端证书。
步骤三:客户端连接数据库
PolarDB PostgreSQL版数据库支持通过SSL远程连接,更多信息,请参见SSL连接PolarDB PostgreSQL数据库。
步骤四:(可选)配置证书吊销文件
如果您不再使用某一个客户端证书时,可以将客户端证书吊销,数据库将拒绝此客户端登录。
配置证书吊销文件后,集群的运行状态会变成修改SSL中,请耐心等待运行状态变更为运行中后再进行后续操作。如果您后续要更新证书吊销文件,也请参考如下步骤。
准备配置文件。
touch /etc/pki/CA/index.txt echo 1000 > /etc/pki/CA/crlnumber
说明如果您使用Windows系统,需要按照如下步骤操作:
在OpenSSL安装目录 \bin 目录下创建CA文件夹。
在CA文件夹内创建 index.txt 文件。
在命令行执行如下命令:
echo 1000 > <OpenSSL 安装目录>\bin\CA\crlnumber
修改C:\Program Files\Common Files\SSL\ 目录下中的 openssl.cnf 文件。
# 找到[ CA_default ]配置项 dir = "<OpenSSL 安装目录>\\bin\\CA"
吊销客户端证书(client.crt)。
openssl ca -revoke client.crt -cert ca1.crt -keyfile ca1.key
说明该命令需要使用到自签名证书(ca1.crt)及自签名证书私钥(ca1.key),请参见步骤一:获取客户端证书。
生成证书吊销文件(client.crl)。
openssl ca -gencrl -out client.crl -cert ca.crt -keyfile ca.key
进入配置与管理 > 安全管理页面。 在SSL配置页签,选择您需要配置客户端吊销文件的主地址或者任意集群地址,然后单击对应的设置客户端吊销文件按钮。
在设置客户端吊销文件对话框中,选择状态为开启,将证书吊销文件(client.crl)内容填写到对话框中,然后单击确定。
步骤五:(可选)关闭客户端CA证书
关闭客户端CA证书后,集群的运行状态会变成修改SSL中,请耐心等待运行状态变更为运行中后再进行后续操作。
如果您需要关闭主地址或集群地址的客户端CA证书,可以在SSL配置页面,找到对应主地址或集群地址的设置客户端CA证书按钮并单击。在弹出的设置客户端CA证书对话框中,单击关闭按钮,并单击确定即可。
步骤六:(可选)关闭客户端证书吊销文件
关闭客户端证书吊销文件后,集群的运行状态会变成修改SSL中,请耐心等待运行状态变更为运行中后再进行后续操作。
如果您需要关闭主地址或集群地址的客户端证书吊销文件,可以在SSL配置页面,找到对应主地址或集群地址的设置客户端吊销文件按钮并点击。在弹出的设置客户端吊销文件对话框中,单击关闭按钮,并单击确定即可。