Nesta página, explicamos como configurar o TLS 1.3 nos processadores de mensagens da Apigee para o 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 no Java, consulte as notas da versão de 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 encontrar a versão do Java instalada no processador de mensagens.
TLS v1.3 e versões do Java
O recurso TLS 1.3 foi introduzido nas seguintes versões do Java:
- Oracle JDK 8u261
- OpenJDK 8u272
Nas seguintes versões do Java, o recurso TLS v1.3 existe, mas não está ativado por padrão em papéis de cliente:
- Oracle JDK 8u261 ou posterior, mas anterior ao Oracle JDK 8u341
- OpenJDK 8u272 ou posterior, mas anterior ao OpenJDK 8u352
Se você estiver usando uma dessas versões, será necessário ativar o TLS v1.3, conforme descrito em Como ativar o TLS v1.3 quando ele não está ativado por padrão.
Se você estiver usando uma das versões a seguir, o TLS v1.3 já deve estar ativado por padrão nas funções do cliente (o processador de mensagens atua como um cliente para conexões TLS no sentido sul). Portanto, não é necessário 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 precisa ser compatível com o TLS v1.3.
- O TLS v1.3 precisa estar ativado no Java no processador de mensagens.
- O TLS v1.3 precisa estar ativado no aplicativo do processador de mensagens.
Como ativar o TLS v1.3 no Java quando ele não está ativado por padrão.
Nesta seção, explicamos como ativar o TLS v1.3 se você estiver usando uma das seguintes versões do Java:
- Oracle JDK 8u261 ou posterior, mas anterior ao Oracle JDK 8u341
- OpenJDK 8u272 ou posterior, mas anterior ao OpenJDK 8u352
No processador de mensagens, defina a propriedade Java jdk.tls.client.protocols.
Os valores são separados por vírgulas e podem conter um ou mais de
TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 e
SSLv3.
Por exemplo, definir -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3 ativa os protocolos
de 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 está 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 você quiser desativar o TLS v1.3 nesses casos, há duas opções:
- Configure as SSLInfo do servidor de destino e verifique se o TLSv1.3 não é mencionado na lista de protocolos. Consulte Elementos de configuração do TargetEndpoint TLS/SSL. Observação:se nenhum protocolo for especificado na configuração do servidor de destino, todos os protocolos compatíveis com o 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 é compatível com duas criptografias TLS v1.3:
- TLS_AES_256_GCM_SHA384
- TLS_AES_128_GCM_SHA256
Use openssl para verificar se o servidor de destino é compatível com o TLS v1.3 e pelo menos uma das criptografias acima usando o comando abaixo. 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