本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 中強制執行最低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 的現代分佈預設會啟用
macOS
如果您正在執行 。NET Core 2.1 或更新版本,依預設會啟用 TLS 1.2。TLS OS X Mavericks 10.9 版或更新版本支援 1
如果您使用的是 。NET Core 1.0,。NET Core 在 macOS 上使用 OpenSSL
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 的支援新增至
警告
從 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
如需TLS搭配 使用 的詳細最佳實務。NET 架構,請參閱位於 https://learn.microsoft.com/en-us/dotnet/framework/network-programming/tls
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
瀏覽器 (適用於 Blazor WebAssembly)
WebAssembly 在瀏覽器中執行,而不是在伺服器上執行,並使用瀏覽器處理HTTP流量。因此,TLS支援由瀏覽器支援決定。
Blazor WebAssembly,在 預覽中ASP。NET Core 3.1 僅支援 的瀏覽器支援 WebAssembly,如 https://learn.microsoft.com/en-us/aspnet/core/blazor/supported-platforms
若要取得詳細資訊並進行確認,請參閱瀏覽器的文件。