在中强制TLS使用最低版本 Amazon SDK for .NET - Amazon SDK for .NET
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在中强制TLS使用最低版本 Amazon SDK for .NET

为了提高与 Amazon 服务通信时的安全性,应将配置 Amazon SDK for .NET 为使用 TLS 1.2 或更高版本。

Amazon SDK for .NET 使用底层。 NET运行时以确定要使用哪种安全协议。默认情况下,为的当前版本。 NET使用操作系统支持的最新配置协议。您的应用程序可以覆盖此SDK行为,但不建议这样做。

。 NET核心

默认情况下,。 NETCore 使用操作系统支持的最新配置协议。 Amazon SDK for .NET 不提供覆盖它的机制。

如果你使用的是. NET 2.1 之前的核心版本,我们强烈建议您升级您的。 NET核心版本。

有关特定于每个操作系统的信息,请参阅以下内容。

Windows

Windows 的现代发行版默认启用了 TLS 1.2 支持。如果你在 Windows 7 SP1 或 Windows Server 2008 R2 上运行SP1,则需要确保注册表中启用 TLS 1.2 支持,如 windows-注册表设置 https://learn.microsoft.com/en-us/#tls server/security/tls/tls- 12 中所述。如果您正在运行较早的发行版,则必须升级操作系统。有关 Windows 中支持 TLS 1.3 的信息,请查看最新的 Microsoft 文档,了解最低要求的客户端或服务器版本。

macOS

如果你在跑步。 NET酷睿 2.1 或更高版本,默认情况下已启用 TLS 1.2。 TLSOS X Mavericks v10.9 或更高版本支持 1.2。 NET核心版本 2.1 及更高版本需要更新版本的 macOS,详见?https://learn.microsoft.com/en-us/dotnet/core/install/windows tabs=net80&pivots=os-macos

如果你正在使用. NET 酷睿 1.0,。 NETCore SSL在 macOS 上使用 Open,该依赖项必须单独安装。Open 在 TLS 1.0.1 版本中SSL添加了对 1.2 的支持,在 1.1.1 版本中增加了TLS对 1.3 的支持。

Linux

。 NETLinux 上的核心需要 OpenSSL,它与许多 Linux 发行版捆绑在一起。但也可以单独安装它。Open 在 TLS 1.0.1 版本中SSL添加了对 1.2 的支持,在 1.1.1 版本中增加了TLS对 1.3 的支持。如果您使用的是现代版本的. NET Core(2.1 或更高版本)并安装了软件包管理器,很可能已经为你安装了更现代SSL的 Open 版本。

当然,您可以在终端中运行 openssl version 并验证版本是否低于 1.0.1。

。 NET框架

如果您运行的是现代版本的. NET 默认情况下,Framework(4.7 或更高版本)和现代版本的 Windows(客户端至少为 Windows 8,服务器至少为 Windows Server 2012 或更高版本),TLS1.2 已启用并使用。

如果你使用的是. NET 不使用操作系统设置的框架运行时(. NET框架 3.5 到 4.5.2), Amazon SDK for .NET 将尝试在支持的协议中增加对 TLS 1.1 和 TLS 1.2 的支持。如果你正在使用. NET Framework 3.5,只有安装了相应的热补丁才能成功,如下所示:

警告

从 2024 年 8 月 15 日起,他们 Amazon SDK for .NET 将终止对的支持。 NET框架 3.5 并将更改最低限度。 NET4.7.2 版本的框架版本。如需了解更多信息,请参阅博客文章 “重要变更即将到来”。 NET框架 3.5 和 4.5 的目标 Amazon SDK for .NET

如果您的应用程序在较新的版本上运行。 NET在 Windows 7 SP1 或 Windows Server 2008 R2 上SP1,你需要确保在注册表中启用 TLS 1.2 支持,如 windows-registr server/security/tls/tlsy-settin https://learn.microsoft.com/en-us/ gs #tls- 12 中所述。较新版本的 Windows 在默认情况下已启用它。

有关TLS与一起使用的详细最佳实践。 NET框架,请参阅 Microsoft 的文章,网址为https://learn.microsoft.com/en-us/dotnet/framework/network-programming/tls

Amazon Tools for PowerShell

Amazon Tools for PowerShell使用 Amazon SDK for .NET 所有 Amazon 服务呼叫。环境的行为取决于 PowerShell 你运行的 Windows 版本,如下所示。

Windows PowerShell 2.0 到 5.x

Windows PowerShell 2.0 到 5.x 可以运行。 NET框架。你可以验证哪个。 NET使用以下命令正在使用运行时(2.0 或 4.0)。 PowerShell

$PSVersionTable.CLRVersion
  • 使用时。 NETRuntime 2.0,请按照之前提供的有关 Amazon SDK for .NET 和的说明进行操作。 NET框架 3.5。

    警告

    从 2024 年 8 月 15 日起,他们 Amazon SDK for .NET 将终止对的支持。 NET框架 3.5 并将更改最低限度。 NET4.7.2 版本的框架版本。如需了解更多信息,请参阅博客文章 “重要变更即将到来”。 NET框架 3.5 和 4.5 的目标 Amazon SDK for .NET

  • 使用时。 NET运行时 4.0,请按照之前提供的有关 Amazon SDK for .NET 和的说明进行操作。 NET框架 4+。

Windows PowerShell 6.0

Windows PowerShell 6.0 及更高版本可以运行。 NET核心。您可以验证哪个版本的。 NET正在通过运行以下命令来使用 Core。

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

按照之前提供的有关 Amazon SDK for .NET 和相关版本的说明进行操作。 NET核心。

Xamarin

对于 Xamarin,请参阅-layer-security 中的说明。https://learn.microsoft.com/en-us/ xamarin/cross-platform/app-fundamentals/transport总而言之:

对于 Android

  • 需要 Android 5.0 或更高版本。

  • 项目属性Android 选项: HttpClient 实现必须设置为 Android,SSL/TLS实现必须设置为 Native TLS 1.2+

对于 iOS

  • 需要 iOS 7 或更高版本。

  • 必须将 “项目属性”、“iOS Build: HttpClient 实现” 设置为NSUrlSession

对于 macOS

  • 需要 macOS 10.9 或更高版本。

  • 必须将 “项目选项”、“建”、“Mac Build: HttpClient 实现” 设置为NSUrlSession

Unity

您必须使用 Unity 2018.2 或更高版本,然后使用。 NET4.x 等效脚本运行时。你可以在 “项目设置”、“配置”、“播放器” 中进行设置,如 https://docs.unity3d.com/2019.1/Documentation/Manual/ScriptingRuntimeUpgrade.html 中所述。的。 NET4.x 等效脚本运行时支持所有运行 Mono 或 IL2CPP Unity 平台的 TLS 1.2 支持。

浏览器(适用于 Blazor WebAssembly)

WebAssembly 在浏览器而不是服务器上运行,并使用浏览器来处理HTTP流量。因此,TLS支持取决于浏览器的支持。

Blazor WebAssembly,正在预览中。ASP NET只有支持的浏览器才支持 Core 3.1 WebAssembly,如https://learn.microsoft.com/en-us/aspnet/core/blazor/supported平台中所述。所有主流浏览器在支持之前都支持 TLS 1.2 WebAssembly。如果您的浏览器是这种情况,那么如果您的应用程序运行,它可以通过 TLS 1.2 进行通信。

有关更多信息和验证,请参阅浏览器的文档。