配置客户端CA证书

如果使用云端证书或自定义证书开启SSL链路加密,则表示在SSL链路中,客户端验证数据库的真实性。如果您需要数据库也验证客户端的真实性,还需要配置客户端CA证书,本文介绍配置客户端CA证书的具体操作。

前提条件

注意事项

  • 配置客户端CA证书后,已有连接需要断开重连,加密才会生效。

  • 配置客户端CA证书、更改客户端CA证书内容、修改客户端证书吊销列表,将会重启您的数据库实例,用时约3分钟左右,请在业务低峰期操作。

操作步骤

步骤一:获取客户端证书

本文以CentOS系统配置为例,如果您使用Windows操作系统,操作步骤中的openssl命令与CentOS系统中的openssl命令配置相同。

  1. 生成自签名证书(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"
  2. 生成客户端证书请求文件(client.csr)和客户端证书私钥(client.key)。

    openssl req -new -nodes -text -out client.csr -keyout client.key -subj "/CN=<客户端用户名>"
    说明

    该命令中-subj参数后的CN取值请配置为客户端访问数据库的用户名。

  3. 生成客户端证书(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中,该状态将持续三分钟左右,请耐心等待运行状态变更为运行中后再进行后续操作。

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 进入数据安全性>SSL页面。

  3. 单击启用客户端CA证书

    启用客户端CA证书

  4. 将自签名证书文件(client-ca.crt)内容填写到对话框中。然后单击确定按钮。

    说明

    自签名证书文件(client-ca.crt)获取请参见步骤一:获取客户端证书。请填写-----BEGIN CERTIFICATE----------END CERTIFICATE-----间的内容,包括BEGIN和END部分。

    填写证书授权机构公钥

步骤三:客户端连接数据库

RDS PostgreSQL数据库支持通过SSL远程连接,具体请参见SSL连接RDS PostgreSQL数据库

步骤四:(可选)配置证书吊销文件

如果您不再使用某一客户端证书时,可以将客户端证书吊销,数据库将拒绝此客户端登录。

说明

配置证书吊销文件后,实例的运行状态将会变更为修改SSL中,该状态将持续三分钟左右,请耐心等待运行状态变更为运行中后再进行后续操作。

  1. 配置文件准备。

    touch /etc/pki/CA/index.txt
    echo 1000 > /etc/pki/CA/crlnumber
    说明

    如果您使用Windows系统,需要按照如下步骤操作:

    1. OpenSSL安装目录\bin目录下创建CA文件夹。

    2. 在CA文件夹内创建index.txt文件。

    3. 命令行执行如下命令:

      echo 1000 > <OpenSSL安装目录>\bin\CA\crlnumber
    4. 修改C:\Program Files\Common Files\SSL\目录下中的openssl.cnf文件。

      # 找到[ CA_default ]配置项
      
      dir = "<OpenSSL安装目录>\\bin\\CA"
  2. 吊销客户端证书(client.crt)。

    openssl ca -revoke client.crt -cert client-ca.crt -keyfile client-ca.key
    说明

    该命令需要使用到自签名证书(client-ca.crt)及自签名证书私钥(client-ca.key),请参见步骤一:获取客户端证书

  3. 生成证书吊销文件(client.crl)。

    openssl ca -gencrl -out client.crl -cert ca.crt -keyfile ca.key
  4. 进入数据安全性>SSL页面。

  5. 单击启用证书吊销文件

    启用证书吊销文件

  6. 将证书吊销文件(client.crl)内容填写到对话框中。

    填写客户端证书吊销文件

步骤五:(可选)更新客户端证书

说明

更新证书会重启实例,请谨慎操作。

如果您需要更新证书,可以在SSL页面单击清除客户端CA证书按钮,清除客户端CA后,重新单击启用客户端CA证书clearclientca