如果使用云端证书或自定义证书开启SSL链路加密,则表示在SSL链路中,客户端验证数据库的真实性。如果您需要数据库也验证客户端的真实性,还需要配置客户端CA证书,本文介绍配置客户端CA证书的具体操作。
前提条件
已安装OpenSSL工具。
说明如果您使用Linux系统,系统会自带OpenSSL工具,无需安装。如果您使用Windows系统,请获取OpenSSL软件包并安装。
注意事项
配置客户端CA证书后,已有连接需要断开重连,加密才会生效。
配置客户端CA证书、更改客户端CA证书内容、修改客户端证书吊销列表,将会重启您的数据库实例,用时约3分钟左右,请在业务低峰期操作。
操作步骤
步骤一:获取客户端证书
本文以CentOS系统配置为例,如果您使用Windows操作系统,操作步骤中的openssl
命令与CentOS系统中的openssl
命令配置相同。
生成自签名证书(client-ca.crt)和自签名证书私钥(client-ca.key)。
openssl req -new -x509 -days 3650 -nodes -out client-ca.crt -keyout client-ca.key -subj "/CN=root-client-ca"
生成客户端证书请求文件(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 client-ca.crt -CAkey client-ca.key -CAcreateserial -out client.crt
完成以上配置后,执行ls
命令,查看已生成的文件:
# ls
client-ca.crt client-ca.key client-ca.srl client.crt client.csr client.key
关键文件解释如下:
client.crt:客户端证书文件。
client.key:客户端私钥文件。
client-ca.crt:自签名证书。
client-ca.key:自签名证书私钥。
步骤二:配置客户端CA证书
配置客户端CA证书后,实例的运行状态将会变更为修改SSL中,该状态将持续三分钟左右,请耐心等待运行状态变更为运行中后再进行后续操作。
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
进入
>SSL页面。单击启用客户端CA证书。
将自签名证书文件(client-ca.crt)内容填写到对话框中。然后单击确定按钮。
说明自签名证书文件(client-ca.crt)获取请参见步骤一:获取客户端证书。请填写-----BEGIN CERTIFICATE-----至-----END CERTIFICATE-----间的内容,包括BEGIN和END部分。
步骤三:客户端连接数据库
RDS PostgreSQL数据库支持通过SSL远程连接,具体请参见SSL连接RDS 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 client-ca.crt -keyfile client-ca.key
说明该命令需要使用到自签名证书(client-ca.crt)及自签名证书私钥(client-ca.key),请参见步骤一:获取客户端证书。
生成证书吊销文件(client.crl)。
openssl ca -gencrl -out client.crl -cert ca.crt -keyfile ca.key
进入
>SSL页面。单击启用证书吊销文件。
将证书吊销文件(client.crl)内容填写到对话框中。
步骤五:(可选)更新客户端证书
更新证书会重启实例,请谨慎操作。
如果您需要更新证书,可以在SSL页面单击清除客户端CA证书按钮,清除客户端CA后,重新单击启用客户端CA证书。