

La AWS SDK per .NET V3 è entrata in modalità manutenzione.

[Ti consigliamo di migrare alla V4.AWS SDK per .NET](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html) Per ulteriori dettagli e informazioni su come eseguire la migrazione, consulta il nostro annuncio sulla modalità di [manutenzione](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/).

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Imposizione di una versione TLS minima nel AWS SDK per .NET
<a name="enforcing-tls"></a>

Per aumentare la sicurezza durante la comunicazione con AWS i servizi, è necessario configurarli AWS SDK per .NET per utilizzare TLS 1.2 o versioni successive.

 AWS SDK per .NET utilizza il runtime di.NET sottostante per determinare il protocollo di sicurezza da utilizzare. Per impostazione predefinita, le versioni correnti di.NET utilizzano il protocollo configurato più recente supportato dal sistema operativo. L'applicazione può ignorare questo comportamento SDK, ma *non è consigliabile* farlo.

## .NET Core
<a name="enforcing-tls-dotnet-core"></a>

Per impostazione predefinita, .NET Core utilizza il protocollo configurato più recente supportato dal sistema operativo. AWS SDK per .NET non fornisce un meccanismo per sovrascrivere questo.

Se si utilizza una versione di.NET Core precedente alla 2.1, si consiglia *vivamente* di aggiornare la versione di .NET Core.

Vedere quanto segue per informazioni specifiche di ciascun sistema operativo.

**Windows**

Le distribuzioni moderne di Windows hanno il supporto TLS 1.2 [abilitato per impostazione predefinita](https://learn.microsoft.com/en-us/windows/win32/secauthn/protocols-in-tls-ssl--schannel-ssp-). Se utilizzi Windows 7 SP1 o Windows Server 2008 R2 SP1, devi assicurarti che il supporto TLS 1.2 sia abilitato nel registro, come descritto in [https://learn.microsoft.com/en-us/windows- server/security/tls/tls -registry-settings](https://learn.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings#tls-12) \#tls -12. Se si esegue una distribuzione precedente, è necessario aggiornare il sistema operativo. Per informazioni sul supporto TLS 1.3 in Windows, consulta la documentazione Microsoft più recente per le versioni client o server minime richieste.

**macOS**

Se si esegue.NET Core 2.1 o versioni successive, TLS 1.2 è abilitato per impostazione predefinita. TLS 1.2 è supportato da [OS X Mavericks](https://support.apple.com/en-us/103373) 10.9 o versioni successive. [.NET Core versione 2.1 e successive richiedono versioni più recenti di macOS, come descritto in? https://learn.microsoft.com/en-us/ dotnet/core/install/windows tabs=net80&pivots=os-macos.](https://learn.microsoft.com/en-us/dotnet/core/install/windows?tabs=net80&pivots=os-macos)

Se si utilizza.NET Core 1.0, .NET Core [utilizza OpenSSL su macOS](https://github.com/dotnet/announcements/issues/21), una dipendenza che deve essere installata separatamente. OpenSSL ha aggiunto il supporto per TLS 1.2 nella versione 1.0.1 e ha aggiunto il supporto per TLS 1.3 nella versione 1.1.1.

**Linux**

.NET Core su Linux richiede OpenSSL, che viene fornito in bundle con molte distribuzioni Linux, ma può anche essere installato separatamente. OpenSSL ha aggiunto il supporto per TLS 1.2 nella versione 1.0.1 e ha aggiunto il supporto per TLS 1.3 nella versione 1.1.1. Se stai usando una versione moderna di.NET Core (2.1 o successiva) e hai installato un gestore di pacchetti, è probabile che sia stata installata una versione più moderna di OpenSSL.

Per essere sicuro, è possibile eseguire **`openssl version`** in un terminale e verificare che la versione sia successiva alla 1.0.1.

## .NET Framework
<a name="enforcing-tls-dotnet-framework"></a>

Se si esegue una versione moderna di.NET Framework (4.7 o versione successiva) e una versione moderna di Windows (almeno Windows 8 per i client, Windows Server 2012 o versione successiva per i server), TLS 1.2 è abilitato e utilizzato per impostazione predefinita.

Se utilizzi un runtime di.NET Framework che non utilizza le impostazioni del sistema operativo (.NET Framework da 3.5 a 4.5.2), AWS SDK per .NET tenterà di [aggiungere il supporto per TLS 1.1 e TLS](https://github.com/aws/aws-sdk-net/blob/aws-sdk-net-v3.7/sdk/src/Core/Amazon.Runtime/Pipeline/HttpHandler/AmazonSecurityProtocolManager.cs) 1.2 ai protocolli supportati. Se si utilizza .NET Framework 3.5, l'operazione avrà esito positivo solo se è installata la patch appropriata, come segue:
+ Windows 10 versione 1511 e Windows Server 2016 — [KB3156421](https://support.microsoft.com/kb/3156421)
+ Windows 8.1 e Windows Server 2012 R2 — [KB3154520](https://support.microsoft.com/kb/3154520)
+ Windows Server 2012 — [KB3154519](https://support.microsoft.com/kb/3154519)
+ Windows 7 SP1 e Server 2008 R2 SP1 — [KB3154518](https://support.microsoft.com/kb/3154518)

**avvertimento**  
A partire dal 15 agosto 2024, AWS SDK per .NET terminerà il supporto per.NET Framework 3.5 e la versione minima.NET Framework passerà alla 4.7.2. Per ulteriori informazioni, consulta il post di blog [Importanti modifiche in arrivo per gli obiettivi .NET Framework 3.5 e 4.5](https://aws.amazon.com/blogs/developer/important-changes-coming-for-net-framework-3-5-and-4-5-targets-of-the-aws-sdk-for-net/) di. AWS SDK per .NET

Se l'applicazione è in esecuzione su un nuovo.NET Framework su Windows 7 SP1 o Windows Server 2008 R2 SP1, è necessario assicurarsi che il supporto TLS 1.2 sia abilitato nel registro, come descritto in [https://learn.microsoft.com/en-us/windows- server/security/tls/tls -registry-settings](https://learn.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings#tls-12) \#tls -12. Le versioni più recenti di Windows lo hanno [abilitato per impostazione predefinita](https://learn.microsoft.com/en-us/windows/win32/secauthn/protocols-in-tls-ssl--schannel-ssp-).

Per le best practice dettagliate per l'utilizzo di TLS con.NET Framework, consulta l'articolo di Microsoft all'indirizzo [https://learn.microsoft.com/en-us/dotnet/framework/network-programming/tls](https://learn.microsoft.com/en-us/dotnet/framework/network-programming/tls).

## AWS Strumenti per PowerShell
<a name="enforcing-tls-ps"></a>

[AWS Strumenti per PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/)usa AWS SDK per .NET per tutte le chiamate ai AWS servizi. Il comportamento dell'ambiente dipende dalla versione di Windows PowerShell in esecuzione, come segue.

**Da Windows PowerShell 2.0 a 5.x**

Da Windows PowerShell 2.0 a 5.x vengono eseguiti su.NET Framework. È possibile verificare quale runtime .NET (2.0 o 4.0) viene utilizzato PowerShell utilizzando il comando seguente.

```
$PSVersionTable.CLRVersion
```
+ Quando si utilizza .NET Runtime 2.0, seguire le istruzioni fornite in precedenza per quanto riguarda AWS SDK per .NET e .NET Framework 3.5.
**avvertimento**  
A partire dal 15 agosto 2024, AWS SDK per .NET terminerà il supporto per.NET Framework 3.5 e la versione minima di.NET Framework passerà alla 4.7.2. Per ulteriori informazioni, consulta il post di blog [Importanti modifiche in arrivo per gli obiettivi .NET Framework 3.5 e 4.5](https://aws.amazon.com/blogs/developer/important-changes-coming-for-net-framework-3-5-and-4-5-targets-of-the-aws-sdk-for-net/) di. AWS SDK per .NET
+ Quando si utilizza .NET Runtime 4.0, seguire le istruzioni fornite in precedenza per quanto riguarda AWS SDK per .NET e .NET Framework 4\+.

**Windows PowerShell 6.0**

Windows PowerShell 6.0 e versioni successive funzionano su.NET Core. È possibile verificare quale versione di .NET Core viene utilizzata eseguendo il comando seguente.

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

Segui le istruzioni fornite in precedenza per quanto riguarda AWS SDK per .NET la versione pertinente di.NET Core.

## Xamarin
<a name="enforcing-tls-xamarin"></a>

[Per Xamarin, consulta le istruzioni in -layer-security. https://learn.microsoft.com/en-us/ xamarin/cross-platform/app-fundamentals/transport](https://learn.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals/transport-layer-security) In sintesi:

**Per Android**
+ Richiede Android 5.0 o versioni successive.
+ **Proprietà del progetto****, **Opzioni Android**: HttpClient l'implementazione deve essere impostata su **Android** e l'implementazione impostata su Native TLS SSL/TLS 1.2\+.**

**Per iOS**
+ Richiede iOS 7 o versioni successive.
+ **Project Properties**, **iOS Build**: HttpClient l'implementazione deve essere impostata su **NSUrlSession**.

**Per macOS**
+ Richiede macOS 10.9 o versioni successive.
+ **Project Options**, **Build**, **Mac Build**: HttpClient l'implementazione deve essere impostata su **NSUrlSession**.

## Unità
<a name="enforcing-tls-unity"></a>

È necessario utilizzare Unity 2018.2 o versioni successive e utilizzare il runtime di scripting equivalente .NET 4.x. Puoi impostarlo in **Project Settings**, **Configuration**, **Player**, come descritto in [https://docs.unity3d.com/2019.1/Documentation/Manual/ScriptingRuntimeUpgrade.html.](https://docs.unity3d.com/2019.1/Documentation/Manual/ScriptingRuntimeUpgrade.html) Il runtime di scripting equivalente.NET 4.x abilita il supporto TLS 1.2 a tutte le piattaforme Unity che eseguono Mono o CPP. IL2 

## Browser (per Blazor) WebAssembly
<a name="enforcing-tls-browser"></a>

WebAssembly viene eseguito nel browser anziché sul server e utilizza il browser per gestire il traffico HTTP. Pertanto, il supporto TLS è determinato dal supporto del browser.

[Blazor WebAssembly, in anteprima per ASP.NET Core 3.1, è supportato solo nei browser che supportano WebAssembly, come descritto in -platforms. https://learn.microsoft.com/en-us/ aspnet/core/blazor/supported](https://learn.microsoft.com/en-us/aspnet/core/blazor/supported-platforms) Tutti i browser tradizionali supportavano TLS 1.2 prima del supporto. WebAssembly Se questo è il caso del browser, se l'app viene eseguita, può comunicare tramite TLS 1.2.

Consulta la documentazione del tuo browser per ulteriori informazioni e verifiche.