

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# 将 SSL 连接过渡到 ACM 证书
<a name="connecting-transitioning-to-acm-certs"></a>

Amazon Redshift 正将您的集群中的 SSL 证书替换为 [AWS Certificate Manager (ACM)](https://aws.amazon.com/certificate-manager/) 颁发的证书。ACM 是一个可信的公有证书颁发机构 (CA)，受当前大多数系统信任。您可能需要更新当前的信任根 CA 证书，才能继续使用 SSL 连接集群。

仅当满足以下所有条件时，此更改才会影响到您：
+  您的 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 驱动程序](#connecting-transitioning-to-acm-latest-odbc-jdbc)
+ [使用较早的 Amazon Redshift ODBC 或 JDBC 驱动程序](#connecting-transitioning-to-acm-earlier-odbc-jdbc)
+ [使用其他 SSL 连接类型](#connecting-transitioning-to-acm-other-ssl-types)

## 使用最新的 Amazon Redshift ODBC 或 JDBC 驱动程序
<a name="connecting-transitioning-to-acm-latest-odbc-jdbc"></a>

首选方法是使用最新的 Amazon Redshift ODBC 或 JDBC 驱动程序。从 ODBC 版本 1.3.7.1000 和 JDBC 版本 1.2.8.1005 开始的 Amazon Redshift 驱动程序可自动管理从 Amazon Redshift 自签名证书到 ACM 证书的过渡。要下载最新驱动程序，请参阅[为 Amazon Redshift 配置 JDBC 驱动程序版本 2.x 连接](jdbc20-install.md)。

如果您使用的是最新的 Amazon Redshift JDBC 驱动程序，最好不要使用 JVM 选项中的 `-Djavax.net.ssl.trustStore`。如果必须使用 `-Djavax.net.ssl.trustStore`，请将 Redshift 证书颁发机构包导入到它指向的信任存储库中。有关下载信息，请参阅[SSL](connecting-ssl-support.md#connect-using-ssl)。有关更多信息，请参阅 [将 Amazon Redshift 证书颁发机构捆绑包导入信任存储库](#importing-the-acm-bundle-to-truststore)。

## 使用较早的 Amazon Redshift ODBC 或 JDBC 驱动程序
<a name="connecting-transitioning-to-acm-earlier-odbc-jdbc"></a>
+ 如果您的 ODBC DSN 配置了 `SSLCertPath`，请覆盖指定路径中的证书文件。
+ 如果未设置 `SSLCertPath`，则请覆盖驱动程序 DLL 位置中名为 `root.crt` 的证书文件。

如果必须使用版本 1.2.8.1005 之前的 Amazon Redshift JDBC 驱动程序，请执行以下操作之一：
+ 如果您的 JDBC 连接字符串使用 `sslCert` 选项，请删除 `sslCert` 选项。然后，将 Redshift 证书颁发机构包导入到 Java 信任存储库中。有关下载信息，请参阅[SSL](connecting-ssl-support.md#connect-using-ssl)。有关更多信息，请参阅 [将 Amazon Redshift 证书颁发机构捆绑包导入信任存储库](#importing-the-acm-bundle-to-truststore)。
+ 如果您使用 Java 命令行 `-Djavax.net.ssl.trustStore` 选项，请尽量将其从命令行中删除。然后，将 Redshift 证书颁发机构包导入到 Java 信任存储库中。有关下载信息，请参阅[SSL](connecting-ssl-support.md#connect-using-ssl)。有关更多信息，请参阅 [将 Amazon Redshift 证书颁发机构捆绑包导入信任存储库](#importing-the-acm-bundle-to-truststore)。

### 将 Amazon Redshift 证书颁发机构捆绑包导入信任存储库
<a name="importing-the-acm-bundle-to-truststore"></a>

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

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

1. 下载 [redshift-keytool.jar](https://s3.amazonaws.com/redshift-downloads/redshift-keytool.jar)。

1. 请执行下列操作之一：
   + 要将 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 连接类型
<a name="connecting-transitioning-to-acm-other-ssl-types"></a>

如果您使用以下任何方式进行连接，请执行本部分中的步骤：
+  开源 ODBC 驱动程序 
+  开源 JDBC 驱动程序 
+  [Amazon Redshift RSQL](https://docs.aws.amazon.com/redshift/latest/mgmt/rsql-query-tool.html) 命令行界面 
+  基于 libpq 的任何语言绑定，如 psycopg2 (Python) 和 ruby-pg (Ruby) 

**将 ACM 证书与其他 SSL 连接类型结合使用：**

1.  下载 Amazon Redshift 证书颁发机构捆绑包。有关下载信息，请参阅[SSL](connecting-ssl-support.md#connect-using-ssl)。

1. 将包中的证书放入您的 `root.crt` 文件中。
   + 在 Linux 和 macOS X 操作系统中，该文件为 `~/.postgresql/root.crt`。
   + 在 Microsoft Windows 上，该文件为 `%APPDATA%\postgresql\root.crt`。