

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Trabalhar com TLS no SDK para Java
<a name="security-java-tls"></a>

O AWS SDK para Java usa os recursos de TLS de sua plataforma Java subjacente. Neste tópico, mostramos exemplos usando a implementação do OpenJDK usada pelo [Amazon Corretto 17](https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/index.html). 

Para trabalhar com ele Serviços da AWS, o JDK subjacente deve oferecer suporte a uma versão mínima do TLS 1.2, mas o TLS 1.3 é recomendado.

Os usuários devem consultar a documentação da plataforma Java que estão usando com o SDK para descobrir quais versões do TLS estão habilitadas por padrão e como habilitar e desabilitar versões específicas do TLS.

## Como verificar as informações da versão do TLS
<a name="how-to-check-the-tls-version"></a>

Usando o OpenJDK, o código a seguir mostra o uso [SSLContext](https://devdocs.io/openjdk~17/java.base/javax/net/ssl/sslcontext#getSupportedSSLParameters())de para imprimir quais versões são suportadas. TLS/SSL 

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

Por exemplo, o Amazon Corretto 17 (OpenJDK) produz a seguinte saída:

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

Para ver o handshake SSL em ação, e qual versão do TLS é usada, você pode usar a propriedade do sistema **javax.net.debug**.

Por exemplo, executar um aplicativo Java que use TLS.

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

O aplicativo registra o handshake SSL semelhante ao exemplo a seguir.

```
...
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",
...
```

## Aplicar uma versão mínima do TLS
<a name="enforce-minimum-tls-version"></a>

O SDK para Java sempre prefere a versão mais recente do TLS compatível com a plataforma e o serviço. Se você deseja aplicar uma versão mínima específica do TLS, consulte a documentação da sua plataforma Java.

Para sistemas baseados em OpenJDK JVMs, você pode usar a propriedade do sistema. `jdk.tls.client.protocols`

Por exemplo, se você quiser que os clientes do serviço SDK em seu aplicativo usem o TLS 1.2, embora o TLS 1.3 esteja disponível, forneça a seguinte propriedade do sistema. 

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

## AWS Atualização de endpoints de API para TLS 1.2
<a name="tls-more-info"></a>

Consulte esta [postagem do blog](https://aws.amazon.com/blogs//security/tls-1-2-required-for-aws-endpoints/) para obter informações sobre a migração dos endpoints de AWS API para o TLS 1.2 na versão mínima.