在 中強制執行最低TLS版本 AWS SDK for .NET - AWS SDK for .NET

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

在 中強制執行最低TLS版本 AWS SDK for .NET

若要在與服務通訊時提高安全性 AWS ,您應該 AWS SDK for .NET 將 設定為使用 TLS 1.2 或更新版本。

AWS SDK for .NET 使用基礎 .NET 執行期來決定要使用的安全通訊協定。根據預設, 的目前版本。NET 會使用作業系統支援的最新設定通訊協定。您的應用程式可以覆寫此SDK行為,但不建議這麼做。

。NET 核心

根據預設, 。NET Core 使用作業系統支援的最新設定通訊協定。 AWS SDK for .NET 未提供覆寫此行為的機制。

如果您使用的是 。NET 2.1 之前的核心版本,強烈建議您升級您的 。NET 核心版本。

請參閱下列各個作業系統的特定資訊。

Windows

Windows 的現代分佈預設會啟用 TLS 1.2 支援。如果您在 Windows 7 SP1或 Windows Server 2008 R2 上執行 SP1,則需要確保在登錄檔中啟用 TLS 1.2 支援,如 https://learn.microsoft.com/en-us/Windows-server/security/tls/tls-registry-settings#tls-12 所述。如果執行的是較舊的分發,則必須升級作業系統。如需 Windows TLS 中 1.3 支援的相關資訊,請查看最低必要用戶端或伺服器版本的最新 Microsoft 文件。

macOS

如果您正在執行 。NET Core 2.1 或更新版本,依預設會啟用 TLS 1.2。TLS OS X Mavericks 10.9 版或更新版本支援 1.2。。NET 核心 2.1 版及更新版本需要較新的 macOS 版本,如 https://learn.microsoft.com/en-us/dotnet/core/install/windows?tabs=net80&pivots=os-macos 所述。

如果您使用的是 。NET Core 1.0,。NET Core 在 macOS 上使用 OpenSSL,這是必須單獨安裝的相依性。在SSL TLS 1.0.1 版中開啟對 1.2 的新增支援,並在 TLS 1.1.1 版中新增對 1.3 的支援。

Linux

。NET Linux 上的核心需要 Open SSL,其隨附許多 Linux 發行版本。但也可以另外個別安裝。在SSL TLS 1.0.1 版中開啟對 1.2 的新增支援,並在 TLS 1.1.1 版中新增對 1.3 的支援。如果您使用的是現代版本的 。NET Core (2.1 或更新版本) 並安裝了套件管理員,很可能為您安裝了更現代化的 OpenSSL 版本。

若要確認,您可以在終端機視窗中執行 openssl version,然後驗證版本確實比 1.0.1 更新。

。NET 架構

如果您執行的是現代版本的 。NET 架構 (4.7 或更新版本) 和現代版本的 Windows (用戶端至少為 Windows 8,伺服器至少為 Windows Server 2012 或更新版本),依預設會啟用並使用 TLS 1.2。

如果您使用的是 。NET 不使用作業系統設定的架構執行期 (。NET Framework 3.5 到 4.5.2), AWS SDK for .NET 會嘗試將 TLS 1.1 和 TLS 1.2 的支援新增至支援的通訊協定。如果您使用的是 。NET Framework 3.5,只有在安裝適當的熱修補程式時,才會成功執行此操作,如下所示:

  • Windows 10 1511 版和 Windows Server 2016 – KB3156421

  • Windows 8.1 和 Windows Server 2012 R2 – KB3154520

  • Windows Server 2012 – KB3154519

  • Windows 7 SP1和 Server 2008 R2 SP1 – KB3154518

警告

從 2024 年 8 月 15 日起, AWS SDK for .NET 將結束對 的支援。NET Framework 3.5 和 將變更最低 。NET 4.7.2 版的架構。如需詳細資訊,請參閱 的部落格文章重要變更。NET 的架構 3.5 和 4.5 目標 AWS SDK for .NET

如果您的應用程式在較新的 上執行。NET Windows 7 SP1或 Windows Server 2008 R2 上的架構SP1,您需要確保在登錄檔中啟用 TLS 1.2 支援,如 https://learn.microsoft.com/en-us/Windows-server/security/tls/tls-registry-settings#tls-12 所述。Windows 更新版本會依預設啟用該支援。

如需TLS搭配 使用 的詳細最佳實務。NET 架構,請參閱位於 https://learn.microsoft.com/en-us/dotnet/framework/network-programming/tls 的 Microsoft 文章。

AWS Tools for PowerShell

AWS Tools for PowerShell 使用 AWS SDK for .NET 進行對 AWS 服務的所有呼叫。環境的行為取決於 PowerShell 您執行的 Windows 版本,如下所示。

Windows PowerShell 2.0 到 5.x

Windows PowerShell 2.0 到 5.x 在 上執行。NET 架構。您可以使用下列命令 PowerShell 來驗證 正在使用哪個 .NET runtime (2.0 或 4.0)。

$PSVersionTable.CLRVersion
  • 使用 時。NET 執行期 2.0,請遵循先前提供的有關 AWS SDK for .NET 和 的指示。NET 架構 3.5。

    警告

    從 2024 年 8 月 15 日起, AWS SDK for .NET 將結束對 的支援。NET Framework 3.5 和 將變更最低 。NET 4.7.2 版的架構。如需詳細資訊,請參閱 的部落格文章重要變更。NET 的架構 3.5 和 4.5 目標 AWS SDK for .NET

  • 使用 時。NET 執行期 4.0,請遵循先前提供關於 AWS SDK for .NET 和 的指示。NET 架構 4+。

Windows PowerShell 6.0

Windows PowerShell 6.0 和更新版本會在 上執行。NET 核心。您可以驗證 的哪個版本。NET 執行下列命令正在使用核心。

[System.Reflection.Assembly]::GetEntryAssembly().GetCustomAttributes([System.Runtime.Versioning.TargetFrameworkAttribute], $true).FrameworkName

請遵循先前提供的有關 AWS SDK for .NET 和相關 版本的指示。NET 核心。

Xamarin

對於 Xamarin,請參閱 https://learn.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals/transport-layer-security 的說明。綜上所述:

適用於 Android

  • 需要 Android 5.0 或更新版本。

  • Project Properties Android Options : HttpClient 實作必須設定為 Android,且 SSL/TLS 實作設定為 Native TLS 1.2+。

適用於 iOS

  • 需要 iOS 7 或更新版本。

  • Project Properties iOS Build : HttpClient 實作必須設定為 NSUrlSession

適用於 macOS

  • 需要 macOS 10.9 或更新版本。

  • Project Options Build Mac Build : HttpClient implementation 必須設定為 NSUrlSession

Unity

您必須使用 Unity 2018.2 或更新版本,並使用 。NET 4.x 等效指令碼執行期。您可以在專案設定 組態 播放器 中設定,如 https://docs.unity3d.com/2019.1/文件/手冊/ScriptingRuntimeUpgrade.html 所述。。NET 4.x Equivalent 指令碼執行期可對所有執行 Mono TLS 或 的 Unity 平台提供 1.2 支援IL2CPP。

瀏覽器 (適用於 Blazor WebAssembly)

WebAssembly 在瀏覽器中執行,而不是在伺服器上執行,並使用瀏覽器處理HTTP流量。因此,TLS支援由瀏覽器支援決定。

Blazor WebAssembly,在 預覽中ASP。NET Core 3.1 僅支援 的瀏覽器支援 WebAssembly,如 https://learn.microsoft.com/en-us/aspnet/core/blazor/supported-platforms 所述。在支援 TLS 之前,所有主流瀏覽器都支援 1 WebAssembly.2。如果您的瀏覽器發生這種情況,則如果您的應用程式執行,它可以透過 1.2 TLS 進行通訊。

若要取得詳細資訊並進行確認,請參閱瀏覽器的文件。