Nesta página, explicamos como configurar o TLS 1.3 nos processadores de mensagens da Apigee para tráfego no sentido sul (tráfego entre o processador de mensagens e o servidor de back-end).
Para saber mais sobre o recurso TLS 1.3 em Java, consulte as Notas de lançamento da atualização do JDK 8u261.
O procedimento para ativar o TLS 1.3 depende da versão do Java que você está usando. Consulte Verificar a versão do Java em um processador de mensagens abaixo para saber a versão do Java instalada no processador de mensagens.
Versões TLS v1.3 e Java
O recurso TLS 1.3 foi introduzido nas seguintes versões do Java:
- Oracle JDK 8u261
- OpenJDK 8u272
Nas versões Java a seguir, o recurso TLS v1.3 existe, mas não é ativado por padrão em papéis de cliente:
- Oracle JDK 8u261 ou mais recente, mas anterior ao Oracle JDK 8u341
- OpenJDK 8u272 ou mais recente, mas anterior ao OpenJDK 8u352
Se você estiver usando uma dessas versões, precisará ativar o TLS v1.3, conforme descrito em Como ativar o TLS v1.3 quando ele não é ativado por padrão.
Se você estiver usando uma das versões a seguir, o TLS v1.3 já estará ativado por padrão nos papéis de clientes (o processador de mensagens atua como um cliente para conexões TLS no sentido sul), portanto, você não precisará fazer nada:
- Oracle JDK 8u341 ou mais recente
- OpenJDK 8u352 ou mais recente
Para que o TLS v1.3 funcione, todas as condições a seguir precisam ser atendidas:
- O Java subjacente no processador de mensagens deve oferecer suporte a TLS v1.3.
- O TLS v1.3 deve estar ativado em Java no processador de mensagens.
- O TLS v1.3 precisa estar ativado no aplicativo Processador de mensagens.
Como ativar o TLS v1.3 em Java quando ele não está ativado por padrão.
Nesta seção, explicamos como ativar o TLS v1.3 caso você esteja usando uma das seguintes versões do Java:
- Oracle JDK 8u261 ou mais recente, mas anterior ao Oracle JDK 8u341
- OpenJDK 8u272 ou mais recente, mas anterior ao OpenJDK 8u352
No processador de mensagens, defina a propriedade Java jdk.tls.client.protocols
.
Os valores são separados por vírgula e podem conter um ou mais valores de
TLSv1
, TLSv1.1
, TLSv1.2
, TLSv1.3
e
SSLv3
.
Por exemplo, definir -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3
ativa os protocolos do cliente TLSv1.2
e TLSv1.3
.
Consulte Alterar outras propriedades da JVM para saber como definir propriedades da JVM em um componente do Edge.
Para ativar os protocolos TLS v1, v1.1, v1.2 e v1.3:
- Defina a seguinte configuração no
arquivo de configuração do processador de mensagens
(
/opt/apigee/customer/application/message-processor.properties
):bin_setenv_ext_jvm_opts=-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
- Reinicie o processador de mensagens.
Como desativar o TLS v1.3 quando ele é ativado por padrão
Se você estiver usando o Oracle JDK 8u341 ou posterior ou o OpenJDK 8u352 ou posterior, o TLSv1.3 será ativado por padrão para os clientes. Se quiser desativar o TLS v1.3 nesses casos, você tem duas opções:
- Configure o SSLInfo do servidor de destino e garanta que TLSv1.3 não seja mencionado na lista de protocolos. Consulte Elementos de configuração do TLS/SSL TargetEndpoint. Observação: se nenhum protocolo for especificado na configuração do servidor de destino, todos os protocolos compatíveis com Java serão enviados como opções no handshake do cliente.
- Desative o TLS v1.3 no processador de mensagens desativando o protocolo completamente. Consulte Definir o protocolo TLS no processador de mensagens.
Verificar a versão do Java em um processador de mensagens
Para verificar a versão do Java instalada em um processador de mensagens, faça login no nó do processador de mensagens e execute o seguinte comando:
java -version
O exemplo de saída abaixo mostra que o OpenJDK 8u312 está instalado.
$ java -version openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
Criptografias compatíveis
No momento, o Java 8 oferece suporte a duas criptografias TLS v1.3:
- TLS_AES_256_GCM_SHA384
- TLS_AES_128_GCM_SHA256
Você pode usar openssl
para verificar se o servidor de destino oferece suporte ao TLS v1.3 e pelo menos uma das criptografias acima usando abaixo. Observe que este exemplo usa o utilitário openssl11
, que tem o TLS v1.3 ativado.
$ openssl11 s_client -ciphersuites "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256" -connect target_host:target_port -tls1_3