将 SSL 连接过渡到 ACM 证书 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将 SSL 连接过渡到 ACM 证书

Amazon Redshift 正将您的集群中的 SSL 证书替换为 Amazon Certificate Manager (ACM) 颁发的证书。ACM 是一个可信的公有证书颁发机构 (CA),受当前大多数系统信任。您可能需要更新当前的信任根 CA 证书,才能继续使用 SSL 连接集群。

仅当满足以下所有条件时,此更改才会影响到您:

  • 您的 SQL 客户端或应用程序使用 SSL 连接 Amazon Redshift 集群,并将 sslMode 连接选项设置为 requireverify-caverify-full 配置选项。

  • 您不使用 Amazon Redshift ODBC 或 JDBC 驱动程序,或者您使用的是 ODBC 版本 1.3.7.1000 或 JDBC 版本 1.2.8.1005 之前的 Amazon Redshift 驱动程序。

如果此更改影响到您的 Amazon Redshift 商业区域,那么您必须在 2017 年 10 月 23 日之前更新当前的信任根 CA 证书。Amazon Redshift 会在现在至 2017 年 10 月 23 日之间将您的集群过渡为使用 ACM 证书。该更改对您集群的性能或可用性应该影响不大或者没有任何影响。

如果此更改对 Amazon GovCloud (US)(美国)区域产生影响,则必须在 2020 年 4 月 1 日之前更新当前的信任根 CA 证书,以避免服务中断。从该日期开始,使用 SSL 加密连接来连接到 Amazon Redshift 集群的客户端需要额外的受信任的证书颁发机构 (CA)。当客户端连接到 Amazon Redshift 集群时,将使用受信任的证书颁发机构来确认该集群的身份。您需要执行相应操作来更新 SQL 客户端和应用程序,以使用包含新的受信任 CA 的更新的证书包。

重要

2021 年 1 月 5 日,在中国区域,Amazon Redshift 正在将您的集群中的 SSL 证书替换为 Amazon Certificate Manager (ACM) 颁发的证书。如果此更改对中国(北京)区域或中国(宁夏)区域产生影响,则必须在 2021 年 1 月 5 日之前更新当前的信任根 CA 证书,以避免服务中断。从该日期开始,使用 SSL 加密连接来连接到 Amazon Redshift 集群的客户端需要额外的受信任的证书颁发机构 (CA)。当客户端连接到 Amazon Redshift 集群时,将使用受信任的证书颁发机构来确认该集群的身份。您需要执行相应操作来更新 SQL 客户端和应用程序,以使用包含新的受信任 CA 的更新的证书包。

使用最新的 Amazon Redshift ODBC 或 JDBC 驱动程序

首选方法是使用最新的 Amazon Redshift ODBC 或 JDBC 驱动程序。从 ODBC 版本 1.3.7.1000 和 JDBC 版本 1.2.8.1005 开始的 Amazon Redshift 驱动程序可自动管理从 Amazon Redshift 自签名证书到 ACM 证书的过渡。要下载最新驱动程序,请参阅配置 ODBC 连接为 Amazon Redshift 配置 JDBC 驱动程序版本 2.1 连接

如果您使用的是最新的 Amazon Redshift JDBC 驱动程序,最好不要使用 JVM 选项中的 -Djavax.net.ssl.trustStore。如果必须使用 -Djavax.net.ssl.trustStore,请将 Redshift 证书颁发机构包导入到它指向的信任存储库中。有关下载信息,请参阅使用 SSL 进行连接。有关更多信息,请参阅 将 Amazon Redshift 证书颁发机构捆绑包导入信任存储库

使用较早的 Amazon Redshift ODBC 或 JDBC 驱动程序

  • 如果您的 ODBC DSN 配置了 SSLCertPath,请覆盖指定路径中的证书文件。

  • 如果未设置 SSLCertPath,则请覆盖驱动程序 DLL 位置中名为 root.crt 的证书文件。

如果必须使用版本 1.2.8.1005 之前的 Amazon Redshift JDBC 驱动程序,请执行以下操作之一:

将 Amazon Redshift 证书颁发机构捆绑包导入信任存储库

您可以使用 redshift-keytool.jar 将 Amazon Redshift 证书颁发机构包中的 CA 证书导入 Java 信任存储库或您的私有信任存储库中。

要将 Amazon Redshift 证书颁发机构捆绑包导入信任存储库
  1. 下载 redshift-keytool.jar

  2. 请执行下列操作之一:

    • 要将 Amazon Redshift 证书颁发机构捆绑包导入 Java 信任存储库中,请运行以下命令。

      java -jar redshift-keytool.jar -s
    • 要将 Amazon Redshift 证书颁发机构捆绑包导入您的私有信任存储库中,请运行以下命令:

      java -jar redshift-keytool.jar -k <your_private_trust_store> -p <keystore_password>

使用其他 SSL 连接类型

如果您使用以下任何方式进行连接,请执行本部分中的步骤:

  • 开源 ODBC 驱动程序

  • 开源 JDBC 驱动程序

  • Amazon Redshift RSQL 命令行界面

  • 基于 libpq 的任何语言绑定,如 psycopg2 (Python) 和 ruby-pg (Ruby)

将 ACM 证书与其他 SSL 连接类型结合使用:
  1. 下载 Amazon Redshift 证书颁发机构捆绑包。有关下载信息,请参阅使用 SSL 进行连接

  2. 将包中的证书放入您的 root.crt 文件中。

    • 在 Linux 和 macOS X 操作系统中,该文件为 ~/.postgresql/root.crt

    • 在 Microsoft Windows 上,该文件为 %APPDATA%\postgresql\root.crt