使用云端证书快速开启SSL加密

RDS PostgreSQL支持设置SSL链路加密,对网络连接进行加密,保证传输链路的安全。本文介绍开启SSL链路加密功能的入门配置,并以配置云端证书为例,指导您快速开启SSL链路加密。

背景信息

SSL(Secure Sockets Layer)指安全套接字协议,是为了安全通信、数据安全性专门设计的安全协议,SSL 3.0之后更名为TLS(Transport Layer Security)。

说明

RDS PostgreSQL支持的TLS版本为1.0、1.1和1.2。

RDS PostgreSQL实例支持的SSL链路加密配置及功能对比如下:

对比项

云端证书

自定义证书

客户端CA证书

证书作用

服务端(数据库)证书,用于客户端验证服务端的真伪

服务端(数据库)证书,用户客户端验证服务端的真伪

客户端证书,用于服务端(数据库)验证客户端的真伪

获取方式

由阿里云颁发

由证书认证机构发或自签名证书颁发

由自签名证书颁发

证书有效期

365天

由您自定义

由您自定义

保护的连接地址数

1个

1个或多个

不影响保护的连接地址数,取决于配合使用的云端证书或自定义证书

说明
  • 配置云端证书或自定义证书为必选配置,用于开启SSL链路加密,验证服务端(数据库)的真伪。

  • 配置客户端CA证书为可选配置,用于服务端验证客户端的真伪。

前提条件

  • 实例为RDS PostgreSQL 10或以上的云盘版本。

    说明

    暂不支持计费方式为Serverless的实例。

  • 已下载pgAdmin 4客户端

注意事项

  • 云端证书的有效期为1年,即将到期时,阿里云将会通过短信、邮件、站内信(事件中心)的方式进行提醒,并会在特定时间段自动更新该证书。您可以通过配置计划时间配置自定义证书更新时间。更多信息,请参见计划内事件

  • 开启SSL链路加密后,会造成CPU使用率上升、读写时延增长。

  • 开启SSL链路加密后,已有连接需要断开重连,加密才会生效。

  • 开启云端证书、更改云端证书保护的连接地址或关闭SSL链路加密,将会重启您的数据库实例,用时约3分钟左右,请在业务低峰期操作。

步骤一:使用云端证书开启SSL链路加密

本文以配置云端证书为例,指导您快速配置SSL链路加密。

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 进入数据安全性>SSL页面。

    说明

    如果您在控制台中未看到SSL页面,请检查您的RDS PostgreSQL实例版本及存储类型,具体详见前提条件

  3. 选择证书来源为使用云端证书,单击配置数据库证书(防止伪装数据库)后的配置按钮,选择需要保护的连接地址。

    选择保护的连接串

    说明
    • 如果您未开启外网地址,请选择需要保护的连接串对话框中将会显示RDS PostgreSQL实例的内网连接地址。如果您开启了外网地址,则会同时显示内网和外网两个连接地址。但云端证书只能对一个连接地址进行保护,内网连接相对安全,推荐您对外网连接地址进行保护。查看内网和外网地址请参见查看内外网地址

    • 如果您需要同时对内网和外网连接地址进行保护,请参见使用自定义证书开启SSL加密

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

步骤二:下载CA证书

启用云端证书后,您需要下载并保存服务端(数据库)CA证书到客户端。在您通过客户端进行远程连接RDS PostgreSQL数据库时,可以使用服务端(数据库)CA证书对数据库的真实性进行验证。

  1. 选择证书来源为使用云端证书,单击下载CA证书

    下载CA证书

  2. 解压下载的CA证书。

    下载的文件为压缩包,包含如下三个文件:

    • PEM文件:适用于绝大部分场景。

    • JKS文件:PEM格式CA证书通常需要导入到truststore,即转换为JKS文件才能在Java中使用。您可以在Java程序中使用此JKS文件,密码为apsaradb。

    • p7b文件:适用于少数要求PKCS #7证书文件的Windows应用。

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

本示例中以pgAdmin客户端通过SSL连接RDS PostgreSQL数据库为例。

RDS PostgreSQL数据库还支持psql命令行终端和JDBC等多种方式SSL远程连接,更多信息,请参见使用SSL链路连接RDS PostgreSQL数据库

说明
  • 连接数据库前,请确保已在RDS PostgreSQL实例中配置白名单和用户。具体操作,请参见设置白名单创建账号和数据库

  • 下文以pgAdmin 4 V6.2.0为例,如果文档截图与您的客户端存在差异,请参见官方文档配置与示例中相同的SSL链路相关参数即可。

  1. 启动pgAdmin 4客户端。

    说明

    高版本客户端首次登录需要设置Master Password用于保护保存的密码和其他凭据。

  2. 右键单击Servers,选择Register > Server...

  3. General页签设置连接名称。

  4. 选择Connection标签页,输入要连接的实例信息。 连接信息

    参数

    说明

    Host name/address

    RDS PostgreSQL实例的连接地址及对应的端口。

    • 若通过内网连接,需输入RDS实例的内网地址和内网端口。

    • 若使用外网连接,需输入RDS实例的外网地址和外网端口。

    您可以在RDS PostgreSQL实例的数据库连接页面查看。

    更多信息,请参见查看或修改连接地址和端口

    Port

    Username

    RDS PostgreSQL实例的账号和密码。

    创建RDS实例的账号请参见创建账号和数据库

    Password

  5. 选择Parameters标签页,添加SSL认证方式相关参数并配置证书。

    参数

    说明

    SSL mode

    为了使用SSL安全连接,请配置Require、Verify-CA或Verify-Full连接方式,参数含义如下:

    • Require:只对数据链路加密,并不验证数据库服务器的真实性。

    • Verify-CA:加密数据链路,同时验证数据库的真实性。

    • Verify-Full:加密数据链路,验证数据库的真实性,同时比对证书内的CN或DNS与连接时配置的Host name/address的一致性。

    Root certificate

    SSL mode取值为Verify-CAVerify-Full时,需要配置此参数,表示数据库CA证书路径。

    说明
    • 本示例中,从SSL页面下载的CA证书解压路径为D:\CA\aliyunCA\,您可以将证书解压到您本地的任意位置。

    • pgAdmin客户端中使用的数据库CA证书为PEM文件。

  6. 单击Save

    若连接信息无误,会出现如下界面,则表示连接成功。

    重要

    postgres是RDS实例默认的系统数据库,请勿在该数据库中进行任何操作。