使用 SSL/TLS 加密与数据库实例的连接 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 SSL/TLS 加密与数据库实例的连接

您可以使用应用程序中的安全套接字层 (SSL) 或传输层安全性 (TLS) 来加密与运行 MariaDB、Microsoft SQL Server、MySQL、Oracle 或 PostgreSQL 的数据库实例的连接。

SSL/TLS 连接通过加密可在您的客户端和数据库实例之间移动的数据来提供一层安全性。(可选)您的 SSL/TLS 连接可以通过验证安装在数据库实例上的服务器证书来执行服务器身份验证。要请求服务器身份验证,请遵循以下一般流程:

  1. 为数据库选择对数据库服务器证书进行签名的证书颁发机构(CA)有关证书颁发机构的更多信息,请参阅证书颁发机构

  2. 下载证书包,以便在连接到数据库时使用。要下载证书包,请参阅特定 Amazon Web Services 区域的证书捆绑包

    注意

    只能使用 SSL/TLS 连接下载所有证书。

  3. 使用数据库引擎用于实现 SSL/TLS 连接的过程连接到数据库。每个数据库引擎都有自己的用于实施 SSL/TLS 的过程。要了解如何为您的数据库实施 SSL/TLS,请使用对应于您的数据库引擎的链接:

证书颁发机构

证书颁发机构(CA)是用于标识证书链顶部的根 CA 的证书。CA 签署安装在每个数据库实例上的数据库服务器证书。数据库服务器证书将数据库实例标识为可信服务器。


                            证书颁发机构概述

Amazon RDS 提供以下 CA 来签署数据库实例的数据库服务器证书。

证书颁发机构(CA) 描述

rds-ca-2019

使用具有 RSA 2048 私有密钥算法和 SHA256 签名算法的证书颁发机构。此 CA 将于 2024 年到期,不支持服务器证书自动轮换。如果您正在使用此 CA 并希望保持相同的标准,我们建议您切换到 rds-ca-rsa2048-g1 CA。

rds-ca-rsa2048-g1

在大多数 Amazon Web Services 区域中,使用具有 RSA 2048 私有密钥算法和 SHA256 签名算法的证书颁发机构。

在 Amazon GovCloud (US) Regions中,此 CA 使用具有 RSA 2048 私有密钥算法和 SHA384 签名算法的证书颁发机构。

此 CA 的有效期比 rds-ca-2019 CA 长。此 CA 支持服务器证书自动轮换。

注意

如果您使用的是 Amazon CLI,则可以使用 describe-certificates 查看上面列出的证书颁发机构的有效性。

这些 CA 证书包含在区域和全球证书捆绑包中。当您将 rds-ca-rsa2048-g1 CA 用于数据库时,RDS 会管理数据库上的数据库服务器证书。RDS 会在数据库服务器证书过期之前自动轮换此证书。

为数据库设置 CA

您可以在执行以下任务时为数据库设置 CA:

注意

默认 CA 设置为 rds-ca-rsa2048-g1。您可以使用 modify-certificates 命令为您的 Amazon Web Services 账户覆盖默认 CA。

可用的 CA 取决于数据库引擎和数据库引擎版本。使用 Amazon Web Services Management Console时,您可以使用 Certificate authority(证书颁发机构)设置选择 CA,如下图所示。


                        证书颁发机构选项

控制台仅显示可用于数据库引擎和数据库引擎版本的 CA。如果您使用的是 Amazon CLI,则可以使用 create-db-instancemodify-db-instance 命令为数据库实例设置 CA。

如果您使用的是 Amazon CLI,则可以使用 describe-certificates 命令查看您账户的可用 CA。此命令还在输出的 ValidTill 中显示每个 CA 的到期日期。您可以使用 describe-db-engine-versions 命令找到适用于特定数据库引擎和数据库引擎版本的 CA。

以下示例显示了可用于默认 RDS for PostgreSQL 数据库引擎版本的 CA。

aws rds describe-db-engine-versions --default-only --engine postgres

输出类似于以下内容。SupportedCACertificateIdentifiers 中列出了可用的 CA。输出还显示数据库引擎版本是否支持在 SupportsCertificateRotationWithoutRestart 中不重新启动的情况下轮换证书。

{ "DBEngineVersions": [ { "Engine": "postgres", "MajorEngineVersion": "13", "EngineVersion": "13.4", "DBParameterGroupFamily": "postgres13", "DBEngineDescription": "PostgreSQL", "DBEngineVersionDescription": "PostgreSQL 13.4-R1", "ValidUpgradeTarget": [], "SupportsLogExportsToCloudwatchLogs": false, "SupportsReadReplica": true, "SupportedFeatureNames": [ "Lambda" ], "Status": "available", "SupportsParallelQuery": false, "SupportsGlobalDatabases": false, "SupportsBabelfish": false, "SupportsCertificateRotationWithoutRestart": true, "SupportedCACertificateIdentifiers": [ "rds-ca-2019", "rds-ca-rsa2048-g1", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1" ] } ] }

数据库服务器证书有效期

数据库服务器证书的有效期取决于数据库引擎和数据库引擎版本。如果数据库引擎版本支持在不重启的情况下轮换证书,则数据库服务器证书的有效期为 1 年。否则,有效期为 3 年。

有关数据库服务器证书轮换的更多信息,请参阅自动服务器证书轮换

查看数据库的 CA

您可以通过查看控制台中的 Connectivity & security(连接和安全)选项卡来查看有关数据库实例的 CA 的详细信息,如下图所示。


                        证书颁发机构详细信息

如果您使用的是 Amazon CLI,您可以使用 describe-db-instances 命令,查看有关数据库实例的 CA 的详细信息。

要检查您的 CA 证书包的内容,请使用以下命令:

keytool -printcert -v -file global-bundle.pem

特定 Amazon Web Services 区域的证书捆绑包

要获取同时包含中国 (北京) Amazon 区域或中国 (宁夏) Amazon 区域的中间证书和根证书的证书捆绑包,请从 https://rds-truststore.s3.cn-north-1.amazonaws.com.cn/global/global-bundle.pem 下载。如果应用程序位于 Microsoft Windows 中并需要 PKCS7 文件,您可以从 https://rds-truststore.s3.cn-north-1.amazonaws.com.cn/global/global-bundle.p7b 下载同时包含中间证书和根证书的 PKCS7 证书捆绑包。

要获取包含 Amazon 区域的中间证书和根证书的证书捆绑包,请通过下表中 Amazon 相应区域的链接下载。

Amazon 区域 证书捆绑包 (PEM) 证书捆绑包 (PKCS7)
China (Beijing) cn-north-1-bundle.pem cn-north-1-bundle.p7b
China (Ningxia) cn-northwest-1-bundle.pem cn-northwest-1-bundle.p7b