

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 启用混合后量子 TLS
<a name="pqtls-details"></a>

AWS 软件开发工具包和工具的加密功能和配置因语言和运行时而异。AWS 软件开发工具包或工具目前通过三种方式提供 PQ TLS 支持：

**Topics**
+ [默认情况下启用 PQ TLS 的软件开发工具包](#pq-tls-default)
+ [Opt-in PQ TLS 支持](#pq-tls-opt-in)
+ [依赖系统 OpenSSL 的软件开发工具包](#pq-tls-open-ssl)
+ [不打算支持 PQ TLS 的 AWS 软件开发工具包和工具](#pq-tls-nosupport)

## 默认情况下启用 PQ TLS 的软件开发工具包
<a name="pq-tls-default"></a>

**注意**  
从 6 开始Nov-2025，适用于 macOS 和 Windows 的 AWS 开发工具包及其底层 CRT 库使用系统库来实现 TLS，因此这些平台上的 PQ TLS 功能通常取决于系统级支持。

### 适用于 Go 的 AWS SDK
<a name="pq-sdk-go"></a>

AWS SDK for Go 使用 Golang 自己的标准库提供的 TLS 实现。从 v1.24 起，Golang 支持并更喜欢 PQ TLS，因此 AWS SDK for Go 用户只需将 Golang 升级到 v1.24 即可启用 PQ TLS 

### 适用于 JavaScript （浏览器）的 AWS 开发工具包
<a name="pq-sdk-javascript"></a>

适用于 JavaScript （浏览器）的 AWS 开发工具包使用浏览器的 TLS 堆栈，因此，如果浏览器运行时支持和首选 PQ TLS，则该软件开发工具包将协商 PQ TLS。Firefox 在 v132.0 中推出了对 PQ TLS 的支持。Chrome 宣布在 v131 中支持 PQ TLS。Edge 支持台式机版 v120 中的可选加入 PQ TLS，安卓版 140 版支持选择加入 PQ 

### 适用于 AWS 开发工具包 Node.js
<a name="pq-sdk-nodejs"></a>

从 Node.js v22.20 (LTS) 和 v24.9.0 开始，静态 Node.js 链接和捆绑了 OpenSSL 3.5。这意味着 PQ TLS 在这些版本和后续版本中默认处于启用状态，并且首选。

### 适用于 Kotlin 的 AWS 开发工具包
<a name="pq-sdk-kotlin"></a>

从 1.5.78 版本开始，Kotlin SDK 支持并更喜欢在 Linux 上使用 PQ TLS。由于适用于 Kotlin CRT-based 客户端的 AWS 开发工具包依赖于 macOS 和 Windows 上的 TLS 系统库，因此对 PQ TLS 的支持将取决于这些底层系统库。

### AWS 开发工具包适用于 Rust
<a name="pq-sdk-rust"></a>

适用于 Rust 的 AWS 开发工具包为每个服务客户端分发不同的软件包（在 Rust 生态系统中称为 “板条箱”）。它们都在统一的 GitHub 存储库中进行管理，但每个服务客户端都遵循自己的版本和发布节奏。合并后的 SDK 于 8/29 /25 发布了 PQ TLS 首选项，因此在该日期之后发布的任何单个服务客户端版本都将默认支持并首选 PQ TLS。

 您可以通过导航到相关的 crates.io 版本网址（例如，[这里](https://crates.io/crates/aws-sdk-paymentcryptography/versions)有 AWS 付款密码学）并查找 29-之后发布的第一个版本，来确定支持特定服务客户端的 PQ TLS 的最低版本。Aug-25默认情况下，在 29-之后发布的任何服务客户端版本都Aug-25将启用 PQ TLS 并处于首选状态。

## Opt-in PQ TLS 支持
<a name="pq-tls-opt-in"></a>

### 适用于 C\+\+ 的 AWS SDK
<a name="pq-sdk-cplusplus"></a>

默认情况下，C\+\+ 开发工具包使用平台原生客户端，例如 libcurl 和。 WinHttpLibcurl 通常依赖系统 OpenSSL 来实现 TLS，因此只有在系统 OpenSSL 等于 v3.5 时，才会默认启用 PQ TLS。你可以在 C\+\+ SDK v1.11.673 或更高版本中覆盖此默认值，然后选择加入默认支持和启用 PQ TLS AwsCrtHttpClient 的。

关于构建 Opt-In PQ TLS 的注意事项您可以使用[此](https://github.com/aws/aws-sdk-cpp/blob/main/prefetch_crt_dependency.sh)脚本获取 SDK 的 CRT 依赖项。[这里和[这里](https://github.com/aws/aws-sdk-cpp/tree/main?tab=readme-ov-file#building-from-source)](https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/sdk-from-source.html)都描述了从源代码构建 SDK，但请注意，你可能需要一些额外的 CMake 标志：

```
  
    -DUSE_CRT_HTTP_CLIENT=ON \
    -DUSE_TLS_V1_2=OFF \
    -DUSE_TLS_V1_3=ON \
    -DUSE_OPENSSL=OFF \
```

### 适用于 Java 的 AWS SDK
<a name="pq-sdk-java"></a>

 从 v2 开始，适用于 Java 的 AWS 开发工具包提供了 AWS 通用运行时 (AWS CRT) HTTP 客户端，可以将其配置为执行 PQ TLS。从 v2.35.11 开始，无论在哪里使用 PQ TLS，都会默认 AwsCrtHttpClient 启用并首选 PQ TLS。

## 依赖系统 OpenSSL 的软件开发工具包
<a name="pq-tls-open-ssl"></a>

有些 AWS 软件开发工具包和工具依赖于系统的 TLS libcrypto/libssl 库。最常用的系统库是 OpenSSL。在 3.5 版本中启用了 OpenSSL 的 PQ TLS 支持，因此为 PQ TLS 配置这些软件开发工具包和工具的最简单方法是在至少安装了 OpenSSL 3.5 的操作系统发行版上使用它。

你也可以将 Docker 容器配置为使用 OpenSSL 3.5 在任何支持 Docker 的系统上启用 PQ TLS。有关为 Python 进行此设置的示例，请参阅 Python 中的 T Post-quantum LS。

### AWS CLI
<a name="pq-tls-cli"></a>

AWS CL [I 安装程序的 PQ TLS](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 支持即将推出。要立即启用，您可以使用 AWS CLI 的替代安装程序，该安装程序因操作系统而异，并且可以启用 PQ TLS。

对于 macOS，请通过 [Homebrew](https://brew.sh/) 安装 AWS CLI，并确保你的 Op Homebrew-vended enSSL 已升级到 3.5\+ 版本。你可以用 “brew install openssl @3 .6” 来做到这一点，然后用 “brew list \| grep openssl” 进行验证。

对于 Ubuntu 或 Debian Linux：确保你使用的 Linux 发行版已将 OpenSSL 3.5\+ 安装为系统 OpenSSL。然后，使用 apt 或 [PyPI 安装 AWS CLI](https://pypi.org/project/awscliv2/)。有了这些先决条件，apt 或 PyPI 出售的 AWS CLI 将被配置为协商。 PQ-TLS有关验证安装的分步说明，请参阅 [github 存储库](https://github.com/aws-samples/sample-post-quantum-tls-python/)和随附的[博客文章](https://aws.amazon.com/blogs/security/post-quantum-tls-in-python/)。

### 适用于 PHP 的 AWS SDK
<a name="pq-tls-php"></a>

适用于 PHP 的 AWS 开发工具包依赖于系统 libssl/libcrypto。要使用 PQ TLS，请在至少安装了 OpenSSL 3.5 的操作系统发行版上使用此 SDK。

### 适用于 Python 的 Amazon SDK（Boto3）
<a name="pq-tls-python"></a>

适用于 Python 的 AWS 开发工具包 (Boto3) 依赖于系统。 libssl/libcrypto要使用 PQ TLS，请在至少安装了 OpenSSL 3.5 的操作系统发行版上使用此 SDK。

### 适用于 Ruby 的 AWS SDK
<a name="pq-tls-ruby"></a>

适用于 Ruby 的 AWS 开发工具包依赖于系统 libssl/libcrypto。要使用 PQ TLS，请在至少安装了 OpenSSL 3.5 的操作系统发行版上使用此 SDK。

### 适用于 .NET 的 AWS SDK
<a name="pq-tls-dotnet"></a>

在 Linux 上，适用于.NET 的 AWS 开发工具包依赖于系统 libssl/libcrypto。要使用 PQ TLS，请在至少安装了 OpenSSL 3.5 的操作系统发行版上使用此 SDK。[在 Windows 和 macOS 上，PQ TLS 从 [.NET 10](https://devblogs.microsoft.com/dotnet/post-quantum-cryptography-in-dotnet/) 和 Windows 11 开始可用。](https://techcommunity.microsoft.com/blog/microsoft-security-blog/post-quantum-cryptography-apis-now-generally-available-on-microsoft-platforms/4469093)[在 macOS 上，可以通过选择加入 Apple 来启用 TLS 1.3 支持（PQ TLS 的先决条件），如下所述。 Network.framework ](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/libraries#tls-13-for-macos-client)假设.NET 版本最低为 10，则应启用 PQ TLS。

## 不打算支持 PQ TLS 的 AWS 软件开发工具包和工具
<a name="pq-tls-nosupport"></a>

目前没有计划支持以下语言 SDK 和工具：
+ 适用于 SAP 的 AWS 开发工具
+ 适用于 Swift 的 AWS
+ 适用于 Windows 的 AWS 工具 PowerShell