Você está vendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. informações
A indicação de nome do servidor (SNI, na sigla em inglês) permite que vários servidores de back-end HTTPS sejam disponibilizados no mesmo endereço IP e porta sem que eles precisem usar o mesmo certificado TLS. É uma extensão do protocolo TLS. Quando a SNI está ativada em um cliente, o cliente transmite o nome do host do servidor de back-end como parte do handshake de TLS inicial. Isso permite que o servidor TLS determine qual certificado TLS será usado para validar a solicitação do cliente.
Por padrão, a SNI é desativada no componente Processador de mensagens no Edge para a nuvem privada, a fim de garantir a compatibilidade com versões anteriores dos servidores de back-end atuais. Caso seu servidor de back-end esteja configurado para oferecer suporte à SNI, você precisará ativar o SNI no componente do processador de mensagens. Caso contrário, as solicitações de API que passam pelo Apigee Edge vão apresentar falhas de handshake de TLS.
Neste documento, explicamos como:
- Identificar se um servidor de back-end está ativado com SNI
- Ative o SNI nos processadores de mensagens para se comunicar com os servidores de back-end compatíveis com o SNI
- Desative o SNI nos processadores de mensagens, se necessário
- Verifique se a configuração de SNI foi atualizada com sucesso nos processadores de mensagens
Antes de começar
- Se você não estiver familiarizado com a SNI, leia Como usar a SNI com borda.
- Se você não souber como configurar o Edge na nuvem privada, leia Como configurar o Edge.
Identificação do servidor com SNI ativado
Esta seção descreve como identificar se o SNI está ativado ou não em um servidor de back-end.
-
Execute o comando
openssl
e tente se conectar ao nome do host do servidor relevante (roteador de borda ou servidor de back-end) sem transmitir o nome do servidor, conforme mostrado abaixo:openssl s_client -connect hostname:port
-
É possível receber os certificados e, às vezes, ocorrer uma falha de handshake no comando
openssl
, conforme mostrado abaixo:
CONNECTED(00000003) 9362:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:593
-
Execute o comando
openssl
e tente se conectar ao nome do host do servidor relevante (roteador de borda ou servidor de back-end) transmitindo o nome do servidor conforme mostrado abaixo:openssl s_client -connect hostname:port -servername hostname
- Se você receber uma falha de handshake na etapa 1 ou receber certificados diferentes nas etapas 1 e 2, isso indicará que o servidor especificado tem a SNI ativada.
- Se você quiser verificar isso para mais de um servidor de back-end, será necessário repetir as etapas acima para cada servidor de back-end.
Se você tiver um ou mais servidores de back-end com a SNI ativada, precisará ativá-la no componente Processador de mensagens, conforme explicado abaixo. Caso contrário, as solicitações de API que passam pelo Apigee Edge falharão com Falhas de handshake de TLS.
Ativar SNI entre os processadores de mensagens de borda e o servidor de back-end
Esta seção explica como ativar a SNI entre o processador de mensagens de borda e o servidor de
back-end. A SNI pode ser ativada pela propriedade jsse.enableSNIExtension
no
componente Processador de mensagens. Para configurar qualquer propriedade no processador de mensagens, use o token de acordo com a sintaxe descrita em Como configurar o Edge.
Para ativar o SNI nos processadores de mensagens, execute as seguintes etapas:
Localizar o token da propriedade jsse.enableSNIExtension
As etapas a seguir descrevem como localizar o token da propriedade jsse.enableSNIExtension
:
-
Procure a propriedade
jsse.enableSNIExtension
no diretório de origem/opt/apigee/edge-message-processor/source
do processador de mensagens usando o seguinte comando:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
-
A saída desse comando mostra o token da propriedade do processador de mensagens
jsse.enableSNIExtension
da seguinte maneira:/opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}
A string entre as tags
{T}{/T}
é o nome do token que pode ser definido no arquivo.properties
do processador de mensagens.Assim, o token da propriedade
jsse.enableSNIExtension
é o seguinte:conf_system_jsse.enableSNIExtension
Ativar SNI no processador de mensagens
As etapas a seguir descrevem como ativar a SNI no componente do processador de mensagens da Apigee.
- Na máquina do processador de mensagens, abra o arquivo a seguir em um editor. Se ainda não existir, crie-o.
/opt/apigee/customer/application/message-processor.properties
Por exemplo, para abrir o arquivo usando
vi
, digite o seguinte comando:vi /opt/apigee/customer/application/message-processor.properties
-
Adicione uma linha no seguinte formato ao arquivo de propriedades:
conf_system_jsse.enableSNIExtension=true
- Salve as mudanças.
-
Verifique se esse arquivo de propriedades pertence ao usuário
apigee
, conforme mostrado abaixo:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Reinicie o processador de mensagens conforme mostrado abaixo:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Verifique se a configuração da SNI está atualizada no processador de mensagens.
- Se você tiver mais de um processador de mensagens, repita as etapas acima em todos eles.
Desativar SNI entre os processadores de mensagens de borda e o servidor de back-end
Em geral, os problemas não ocorrem depois que você ativa a SNI. No entanto, se você observar problemas de conectividade entre o processador de mensagens de borda e o servidor de back-end após ativar a SNI, poderá desativar o SNI seguindo as etapas abaixo.
A SNI pode ser desativada definindo a propriedade jsse.enableSNIExtension
de volta como false
no componente do processador de mensagens.
Desativar SNI nos processadores de mensagens
As etapas a seguir descrevem como desativar a SNI nos processadores de mensagens da Apigee.
-
Na máquina do processador de mensagens, abra o arquivo a seguir em um editor. Se ainda não existir, crie-o.
/opt/apigee/customer/application/message-processor.properties
Por exemplo, para abrir o arquivo usando
vi
, digite o seguinte comando:vi /opt/apigee/customer/application/message-processor.properties
-
Se a linha
conf_system_jsse.enableSNIExtension=true
existir em/opt/apigee/customer/application/message-processor.properties
, modifique-a da seguinte forma:conf_system_jsse.enableSNIExtension=false
- Salve as mudanças.
-
Verifique se esse arquivo de propriedades pertence ao usuário
apigee
, conforme mostrado abaixo:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Reinicie o processador de mensagens conforme mostrado abaixo:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Verifique se a configuração da SNI está atualizada no processador de mensagens.
- Se você tiver mais de um processador de mensagens, repita as etapas acima em todos eles.
Como verificar a configuração de SNI nos processadores de mensagens
Esta seção explica como verificar se a configuração do SNI foi atualizada nos processadores de mensagens.
Mesmo que você use o token conf_system_jsse.enableSNIExtension
para configurar a SNI no processador de mensagens, será necessário verificar se a propriedade real
jsse.enableSNIExtension
foi definida com o novo valor.
-
Na máquina do processador de mensagens, pesquise a propriedade
jsse.enableSNIExtension
no diretório/opt/apigee/edge-message-processor/conf
e verifique se ela foi definida com o novo valor, conforme mostrado abaixo:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
-
Se a configuração de SNI for atualizada com êxito no processador de mensagens, o comando acima mostrará o novo valor no arquivo
system.properties
.O resultado do exemplo do comando acima depois de você ativar o SNI no processador de mensagens é o seguinte:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
Da mesma forma, o resultado do exemplo do comando acima depois de desativar o SNI no processador de mensagens é o seguinte:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
No exemplo de saída acima, observe que a propriedade
jsse.enableSNIExtension
foi atualizada para o novo valortrue
oufalse
emsystem.properties
. Isso indica que a SNI foi ativada ou desativada no processador de mensagens. -
Se o valor antigo da propriedade
jsse.enableSNIExtension
ainda aparecer, verifique se você seguiu todas as etapas descritas na seção apropriada para ativar ou desativar a SNI corretamente. Se você esqueceu alguma etapa, repita todas as etapas corretamente. - Se ainda não for possível ativar/desativar a SNI , entre em contato com o suporte do Apigee Edge.