将 SSL 连接过渡到 ACM 证书
Amazon Redshift 正将您的集群中的 SSL 证书替换为 AWS Certificate Manager (ACM)
仅当满足以下所有条件时,此更改才会影响到您:
-
您的 SQL 客户端或应用程序使用 SSL 连接 Amazon Redshift 集群,并将
sslMode
连接选项设置为require
、verify-ca
或verify-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 证书。该更改对您集群的性能或可用性应该影响不大或者没有任何影响。
如果此更改对 AWS GovCloud (US)(美国)区域产生影响,则必须在 2020 年 4 月 1 日之前更新当前的信任根 CA 证书,以避免服务中断。从该日期开始,使用 SSL 加密连接来连接到 Amazon Redshift 集群的客户端需要额外的受信任的证书颁发机构 (CA)。当客户端连接到 Amazon Redshift 集群时,将使用受信任的证书颁发机构来确认该集群的身份。您需要执行相应操作来更新 SQL 客户端和应用程序,以使用包含新的受信任 CA 的更新的证书包。
重要
2021 年 1 月 5 日,在中国区域,Amazon Redshift 正在将您的集群中的 SSL 证书替换为 AWS 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 证书的过渡。要下载最新驱动程序,请参阅为 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 驱动程序,请执行以下操作之一:
-
如果您的 JDBC 连接字符串使用
sslCert
选项,请删除sslCert
选项。然后,将 Redshift 证书颁发机构包导入到 Java 信任存储库中。有关下载信息,请参阅SSL。有关更多信息,请参阅 将 Amazon Redshift 证书颁发机构捆绑包导入信任存储库。 -
如果您使用 Java 命令行
-Djavax.net.ssl.trustStore
选项,请尽量将其从命令行中删除。然后,将 Redshift 证书颁发机构包导入到 Java 信任存储库中。有关下载信息,请参阅SSL。有关更多信息,请参阅 将 Amazon Redshift 证书颁发机构捆绑包导入信任存储库。
将 Amazon Redshift 证书颁发机构捆绑包导入信任存储库
您可以使用 redshift-keytool.jar
将 Amazon Redshift 证书颁发机构包中的 CA 证书导入 Java 信任存储库或您的私有信任存储库中。
要将 Amazon Redshift 证书颁发机构捆绑包导入信任存储库
-
请执行下列操作之一:
-
要将 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 连接类型结合使用:
-
下载 Amazon Redshift 证书颁发机构捆绑包。有关下载信息,请参阅SSL。
-
将包中的证书放入您的
root.crt
文件中。-
在 Linux 和 macOS X 操作系统中,该文件为
~/.postgresql/root.crt
。 -
在 Microsoft Windows 上,该文件为
%APPDATA%\postgresql\root.crt
。
-