Trabalhando com TLS no SDK para Java - AWS SDK for Java 2.x

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

Trabalhando com TLS no SDK para Java

O AWS SDK for Java usa os TLS recursos de sua plataforma Java subjacente. Neste tópico, mostramos exemplos usando a JDK implementação aberta usada pelo Amazon Corretto 17.

Para trabalhar com ele Serviços da AWS, o subjacente JDK deve suportar uma versão mínima de TLS 1.2, mas a TLS 1.3 é recomendada.

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

Como verificar as informações da TLS versão

Usando OpenJDK, o código a seguir mostra o uso de SSLContextpara imprimir quais TLS SSL /versões são suportadas.

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 SSL handshake em ação e qual versão do TLS é usada, você pode usar a propriedade do sistema javax.net.debug.

Por exemplo, execute um aplicativo Java que useTLS.

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

O aplicativo registra o SSL handshake de forma semelhante ao seguinte.

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

Imponha uma versão mínima TLS

O SDK for Java sempre prefere a TLS versão mais recente suportada pela plataforma e pelo serviço. Se você deseja aplicar uma TLS versão mínima específica, consulte a documentação da sua plataforma Java.

Para JDK baseado em abertoJVMs, você pode usar a propriedade do sistemajdk.tls.client.protocols.

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

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

AWS APIatualização de endpoints para 1.2 TLS

Consulte esta postagem do blog para obter informações sobre a migração de AWS API endpoints para TLS 1.2 na versão mínima.