

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 啟用混合式後量子 TLS
<a name="pqtls-details"></a>

AWS SDKs和工具具有不同語言和執行時間的密碼編譯功能和組態。AWS 開發套件或工具目前提供 PQ TLS 支援的三種方式：

**Topics**
+ [預設啟用 PQ TLS SDKs](#pq-tls-default)
+ [選擇加入 PQ TLS 支援](#pq-tls-opt-in)
+ [依賴 System OpenSSL SDKs](#pq-tls-open-ssl)
+ [AWS SDKs和工具不打算支援 PQ TLS](#pq-tls-nosupport)

## 預設啟用 PQ TLS SDKs
<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>

適用於 Go 的 AWS 開發套件使用 Golang 自有的 TLS 實作，由其標準程式庫提供。Golang 支援並偏好自 v1.24 起的 PQ TLS，因此適用於 Go 的 AWS 開發套件使用者只需將 Golang 升級到 v1.24 即可啟用 PQ TLS 

### 適用於 JavaScript 的 AWS 開發套件 （瀏覽器）
<a name="pq-sdk-javascript"></a>

適用於 JavaScript 的 AWS 開發套件 （瀏覽器） 使用瀏覽器的 TLS 堆疊，因此如果瀏覽器執行時間支援並偏好，開發套件會交涉 PQ TLS。Firefox 在 v132.0 中啟動了對 PQ TLS 的支援。Chrome 宣布支援 v131 中的 PQ TLS。Edge 支援 v120 桌面版和 Android 版 140 版中的選擇加入 PQ TLS。

### 適用於 Node.js 的 AWS 開發套件
<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>

Kotlin SDK 自 v1.5.78 起支援並偏好 Linux 上的 PQ TLS。由於適用於 Kotlin 的 CRT 型用戶端的 AWS 開發套件依賴 MacOS 和 Windows 上的 TLS 系統程式庫，因此 PQ TLS 的支援將取決於這些基礎系統程式庫。

### 適用於 Rust 的 AWS 開發套件
<a name="pq-sdk-rust"></a>

適用於 Rust 的 AWS 開發套件會為每個服務用戶端分配不同的套件 （在 Rust 生態系統中稱為「木箱」)。這些都是在合併的 GitHub 儲存庫中管理，但每個服務用戶端都遵循自己的版本和發行節奏。合併 SDK 在 8/29/25 發行的 PQ TLS 偏好設定，因此該日期之後發行的任何個別服務用戶端版本預設會支援並偏好 PQ TLS。

 您可以導覽至相關的 crates.io 版本 URL （例如， AWS Payment Cryptography 的 [在這裡](https://crates.io/crates/aws-sdk-paymentcryptography/versions))，並尋找 29-Aug-25 日之後發佈的第一個版本，以判斷支援特定服務用戶端 PQ TLS 的最低版本。根據預設，在 29-Aug-25都會啟用 PQ TLS 並優先使用。

## 選擇加入 PQ TLS 支援
<a name="pq-tls-opt-in"></a>

### 適用於 C\$1\$1 的 AWS SDK
<a name="pq-sdk-cplusplus"></a>

根據預設，C\$1\$1 開發套件會使用平台原生用戶端，例如 libcurl 和 WinHttp。Libcurl 通常依賴系統 OpenSSL for TLS，因此 PQ TLS 預設只有在系統 OpenSSL ≥ v3.5 時才啟用。您可以在 C\$1\$1 SDK v1.11.673 或更新版本中覆寫此預設值，並選擇加入支援並啟用預設 PQ TLS 的 AwsCrtHttpClient。

建立選擇加入 PQ TLS 的注意事項 您可以使用[此指令碼](https://github.com/aws/aws-sdk-cpp/blob/main/prefetch_crt_dependency.sh)擷取開發套件的 CRT 相依性。[此處](https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/sdk-from-source.html)和[此處](https://github.com/aws/aws-sdk-cpp/tree/main?tab=readme-ov-file#building-from-source)說明從來源建置 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 開發套件提供可設定為執行 PQ TLS 的 AWS Common Runtime (AWS CRT) HTTP 用戶端。自 v2.35.11 起，AwsCrtHttpClient 預設會在使用 PQ TLS 的任何地方啟用和偏好 PQ TLS。

## 依賴 System OpenSSL SDKs
<a name="pq-tls-open-ssl"></a>

數個 AWS SDKs和工具取決於系統的 TLS libcrypto/libssl 程式庫。最常用的系統程式庫是 OpenSSL。在 3.5 版中啟用 OpenSSL 的 PQ TLS 支援，因此設定 PQ TLS 的這些SDKs和工具最簡單的方式是在至少已安裝 OpenSSL 3.5 的作業系統分發上使用它。

您也可以將 Docker 容器設定為使用 OpenSSL 3.5，在支援 Docker 的任何系統上啟用 PQ TLS。如需為 Python 設定此範例，請參閱 Python 中的後量子 TLS。

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

[AWS CLI 安裝程式](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)的 PQ TLS 支援即將推出。若要立即啟用，您可以使用 AWS CLI 的替代安裝程式，這會因作業系統而異，並且可以啟用 PQ TLS。

對於 MacOS，請透過 [Homebrew](https://brew.sh/) 安裝 AWS CLI，並確保 Homebrew 提供的 OpenSSL 已升級至 3.5\$1 版。您可以使用「brew install openssl@3.6」執行此操作，並使用「brew list \$1 grep openssl」進行驗證。

對於 Ubuntu 或 Debian Linux：確保您使用的 Linux 發行版本已安裝 OpenSSL 3.5\$1 做為系統 OpenSSL。然後，使用 apt 或 [PyPI](https://pypi.org/project/awscliv2/) 安裝 AWS CLI。使用這些先決條件時，由 apt 或 PyPI 提供的 AWS CLI 將設定為交涉 PQ-TLS。如需驗證安裝的step-by-step說明，請參閱 [github 儲存庫](https://github.com/aws-samples/sample-post-quantum-tls-python/)和隨附的[部落格文章](https://aws.amazon.com/blogs/security/post-quantum-tls-in-python/)。

### 適用於 PHP 的 AWS 開發套件
<a name="pq-tls-php"></a>

適用於 PHP 的 AWS 開發套件依賴系統 libssl/libcrypto。若要使用 PQ TLS，請在至少已安裝 OpenSSL 3.5 的作業系統分佈上使用此開發套件。

### 適用於 Python 的 AWS SDK (Boto3)
<a name="pq-tls-python"></a>

適用於 Python 的 AWS 開發套件 (Boto3) 依賴系統 libssl/libcrypto。若要使用 PQ TLS，請在至少已安裝 OpenSSL 3.5 的作業系統分佈上使用此開發套件。

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

適用於 Ruby 的 AWS 開發套件依賴系統 libssl/libcrypto。若要使用 PQ TLS，請在至少已安裝 OpenSSL 3.5 的作業系統分佈上使用此開發套件。

## AWS SDKs和工具不打算支援 PQ TLS
<a name="pq-tls-nosupport"></a>

目前沒有支援下列語言 SDKs和工具的計劃：
+ 適用於 .NET 的 AWS SDK
+ 適用於 Swift 的 AWS 開發套件
+ 適用於 Windows PowerShell 的 AWS 工具