

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à.

# Utilizzo di TLS nell'SDK for Java
<a name="security-java-tls"></a>

 AWS SDK per Java Utilizza le funzionalità TLS della piattaforma Java sottostante. [In questo argomento, mostriamo esempi di utilizzo dell'implementazione OpenJDK utilizzata da Amazon Corretto 17.](https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/index.html) 

Per utilizzarlo Servizi AWS, il JDK sottostante deve supportare una versione minima di TLS 1.2, ma TLS 1.3 è consigliato.

Gli utenti devono consultare la documentazione della piattaforma Java che utilizzano con l'SDK per scoprire quali versioni TLS sono abilitate di default e come abilitare e disabilitare versioni TLS specifiche.

## Come controllare le informazioni sulla versione TLS
<a name="how-to-check-the-tls-version"></a>

Utilizzando OpenJDK, il codice seguente mostra l'uso [SSLContext](https://devdocs.io/openjdk~17/java.base/javax/net/ssl/sslcontext#getSupportedSSLParameters())di per stampare quali versioni sono supportate. TLS/SSL 

```
System.out.println(Arrays.toString(SSLContext.getDefault().getSupportedSSLParameters().getProtocols()));
```

Ad esempio, Amazon Corretto 17 (OpenJDK) produce il seguente output.

```
[TLSv1.3, TLSv1.2, TLSv1.1, TLSv1, SSLv3, SSLv2Hello]
```

Per vedere l'handshake SSL in azione e quale versione di TLS viene utilizzata, puoi utilizzare la proprietà di sistema **javax.net.debug**.

Ad esempio, esegui un'applicazione Java che utilizza TLS.

```
java app.jar -Djavax.net.debug=ssl:handshake
```

L'applicazione registra l'handshake SSL in modo simile al seguente.

```
...
javax.net.ssl|DEBUG|10|main|2022-12-23 13:53:12.221 EST|ClientHello.java:641|Produced ClientHello handshake message (
"ClientHello": {
  "client version"      : "TLSv1.2",

...
javax.net.ssl|DEBUG|10|main|2022-12-23 13:53:12.295 EST|ServerHello.java:888|Consuming ServerHello handshake message (
"ServerHello": {
  "server version"      : "TLSv1.2",
...
```

## Applica una versione TLS minima
<a name="enforce-minimum-tls-version"></a>

L'SDK for Java preferisce sempre l'ultima versione TLS supportata dalla piattaforma e dal servizio. Se desideri applicare una versione TLS minima specifica, consulta la documentazione della tua piattaforma Java.

Per i sistemi basati su OpenJDK JVMs, è possibile utilizzare la proprietà di sistema. `jdk.tls.client.protocols`

Ad esempio, se desideri che i client del servizio SDK nell'applicazione utilizzino TLS 1.2, anche se TLS 1.3 è disponibile, fornisci la seguente proprietà di sistema. 

```
java app.jar -Djdk.tls.client.protocols=TLSv1.2
```

## AWS Aggiornamento degli endpoint API a TLS 1.2
<a name="tls-more-info"></a>

Consulta questo [post di blog](https://aws.amazon.com/blogs//security/tls-1-2-required-for-aws-endpoints/) per informazioni sugli endpoint AWS API che passano a TLS 1.2 per la versione minima.