文档

配置客户端CA证书

更新时间:

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

前提条件

  • 集群为PolarDB PostgreSQL版 14、15或以上版本,其中 PolarDB PostgreSQL版14要求内核版本大于等于14.10.21.0版本,主地址可允许配置自定义证书、客户端CA证书等。

  • 集群的数据库代理版本要求至少为2.3.51版本,集群地址和自定义地址才允许配置自定义证书、客户端CA证书等。

  • 已完成使用云端证书快速配置SSL加密配置自定义证书

  • 已安装OpenSSL工具。

    说明

    如果您使用Linux系统,系统会自带OpenSSL工具,无需安装。如果您使用Windows系统,请获取OpenSSL 软件包并安装。

注意事项

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

  • 配置客户端CA证书、配置客户端证书吊销文件列表、关闭客户端CA证书、关闭客户端证书吊销文件列表,会存在连接闪断,请在业务低峰期间操作。

步骤一:获取客户端证书

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

  1. 生成自签名证书(ca1.crt)和自签名证书私钥(ca1.key)。

    openssl req -new -x509 -days 3650 -nodes -out ca1.crt -keyout ca1.key -subj "/CN=root-ca1"
  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 ca1.crt -CAkey ca1.key -CAcreateserial  -out client.crt

完成以上配置后,执行ls命令,查看已生成的文件:

# ls
ca1.crt  ca1.key  ca1.srl  client.crt  client.csr  client.key

关键文件解释如下:

  1. client.crt:客户端证书文件。

  2. client.key:客户端私钥文件。

  3. ca1.crt:自签名证书。

  4. ca1.key:自签名证书私钥。

步骤二:配置客户端 CA 证书

说明

配置客户端CA证书后,集群的运行状态会变成修改SSL中,请耐心等待运行状态变更为运行中后再进行后续操作。如果您后续要更新客户端CA证书,也请参考如下步骤。

  1. 登录PolarDB管理控制台

  2. 在页面左上角,选择集群所在地域。

  3. 找到目标集群,单击集群ID。

  4. 在左侧菜单栏中单击配置与管理 > 安全管理

  5. SSL配置页签,选择您需要配置客户端CA证书的主地址或集群地址,然后单击对应的设置客户端CA证书按钮。

  6. 设置客户端CA证书对话框中,选择状态开启,然后将自签名证书文件(ca1.crt)内容填写到对话框中,然后单击确定按钮。

    说明

    自签名证书文件(ca1.crt)获取方式请参见步骤一:获取客户端证书

    image.png

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

PolarDB PostgreSQL版数据库支持通过SSL远程连接,更多信息,请参见SSL连接PolarDB 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 ca1.crt -keyfile ca1.key
    说明

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

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

    openssl ca -gencrl -out client.crl -cert ca.crt -keyfile ca.key
  4. 进入配置与管理 > 安全管理页面。 在SSL配置页签,选择您需要配置客户端吊销文件的主地址或者任意集群地址,然后单击对应的设置客户端吊销文件按钮。

  5. 设置客户端吊销文件对话框中,选择状态开启,将证书吊销文件(client.crl)内容填写到对话框中,然后单击确定

    image.png

步骤五:(可选)关闭客户端CA证书

说明

关闭客户端CA证书后,集群的运行状态会变成修改SSL中,请耐心等待运行状态变更为运行中后再进行后续操作。

如果您需要关闭主地址或集群地址的客户端CA证书,可以在SSL配置页面,找到对应主地址或集群地址的设置客户端CA证书按钮并单击。在弹出的设置客户端CA证书对话框中,单击关闭按钮,并单击确定即可。

image.png

步骤六:(可选)关闭客户端证书吊销文件

说明

关闭客户端证书吊销文件后,集群的运行状态会变成修改SSL中,请耐心等待运行状态变更为运行中后再进行后续操作。

如果您需要关闭主地址或集群地址的客户端证书吊销文件,可以在SSL配置页面,找到对应主地址或集群地址的设置客户端吊销文件按钮并点击。在弹出的设置客户端吊销文件对话框中,单击关闭按钮,并单击确定即可。

image.png