Você está lendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. info
A indicação de nome do servidor (SNI, na sigla em inglês) permite que vários servidores de back-end HTTPS sejam veiculados no mesmo endereço IP e porta sem exigir que esses servidores de back-end usem o mesmo certificado TLS. É uma extensão do protocolo TLS. Quando a SNI está ativada em um cliente, ele transmite o nome do host do servidor de back-end como parte do handshake TLS inicial. Isso permite que o servidor TLS determine qual certificado TLS precisa ser usado para validar a solicitação do cliente.
Por padrão, a SNI está desativada no componente do processador de mensagens no Edge para nuvem privada para garantir a compatibilidade com versões anteriores dos servidores de back-end atuais. Se o servidor de back-end estiver configurado para oferecer suporte à SNI, será necessário ativá-la no componente do processador de mensagens. Caso contrário, as solicitações de API que passam pelo Apigee Edge vão falhar com falhas de handshake TLS.
Neste documento, explicamos como:
- Identificar se um servidor de back-end está ativado para SNI
- Ativar a SNI nos processadores de mensagens para se comunicar com servidores de back-end que oferecem suporte à SNI
- Desativar a SNI nos processadores de mensagens, se necessário
- Verificar se a configuração da SNI foi atualizada nos processadores de mensagens
Antes de começar
- Se você não estiver familiarizado com a SNI, leia Usar a SNI com o Edge.
- Se você não estiver familiarizado com a configuração do Edge na nuvem privada, leia Como configurar o Edge.
Identificação do servidor ativado para SNI
Esta seção descreve como identificar se um servidor de back-end está ativado para SNI.
-
Execute o comando
openssle tente se conectar ao nome do host do servidor relevante (roteador do Edge ou servidor de back-end) sem transmitir o nome do servidor, conforme mostrado abaixo:openssl s_client -connect hostname:port
-
Você pode receber os certificados e, às vezes, observar a falha de handshake no
opensslcomando, 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
openssle tente se conectar ao nome do host do servidor relevante (roteador do Edge 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 certificados diferentes nas etapas 1 e 2, isso indica que o servidor especificado está ativado para SNI.
- Se você quiser verificar isso para mais de um servidor de back-end, então você precisa repetir as etapas acima para cada servidor de back-end.
Se você descobrir que tem um ou mais servidores de back-end ativados para SNI, será necessário ativar a SNI no componente do processador de mensagens, conforme explicado abaixo. Caso contrário, as solicitações de API que passam pelo Apigee Edge vão falhar com falhas de handshake TLS.
Ativar a SNI entre os processadores de mensagens do Edge e o servidor de back-end
Esta seção explica como ativar a SNI entre o processador de mensagens do Edge e o servidor de back-end
server. A SNI pode ser ativada pela propriedade jsse.enableSNIExtension no
componente do 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 a SNI nos processadores de mensagens, siga estas etapas:
Localizar o token da propriedade jsse.enableSNIExtension
As etapas a seguir descrevem como localizar o token da propriedade
jsse.enableSNIExtension:
-
Pesquise a propriedade
jsse.enableSNIExtensionno diretório de origem do processador de mensagens/opt/apigee/edge-message-processor/sourceusando o seguinte comando:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
-
A saída desse comando mostra o token da propriedade
jsse.enableSNIExtensiondo processador de mensagens da seguinte maneira:/opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}Em que a string entre as tags
{T}{/T}é o nome do token que pode ser definido no arquivo.propertiesdo processador de mensagens.Assim, o token da propriedade
jsse.enableSNIExtensioné o seguinte:conf_system_jsse.enableSNIExtension
Ativar a 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 seguinte arquivo em um editor. Se ele ainda não
já existir, crie-o.
/opt/apigee/customer/application/message-processor.properties
Por exemplo, para abrir o arquivo usando
vi, insira 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 alterações.
-
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 foi atualizada no processador de mensagens.
- Se você tiver mais de um processador de mensagens, repita as etapas acima em todos os processadores de mensagens.
Desativar a SNI entre os processadores de mensagens do Edge e o servidor de back-end
Geralmente, não há problemas após ativar a SNI. No entanto, se você observar problemas de conectividade entre o processador de mensagens do Edge e o servidor de back-end após ativar a SNI, sempre poderá desativá-la seguindo estas etapas.
A SNI pode ser desativada definindo a propriedade jsse.enableSNIExtension
de volta como false no componente do processador de mensagens.
Desativar a 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 seguinte arquivo em um editor. Se ele ainda não
já existir, crie-o.
/opt/apigee/customer/application/message-processor.properties
Por exemplo, para abrir o arquivo usando
vi, insira o seguinte comando:vi /opt/apigee/customer/application/message-processor.properties
-
Se a linha
conf_system_jsse.enableSNIExtension=trueexistir em/opt/apigee/customer/application/message-processor.properties, modifique-a da seguinte maneira:conf_system_jsse.enableSNIExtension=false
- Salve as alterações.
-
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 foi atualizada no processador de mensagens.
- Se você tiver mais de um processador de mensagens, repita as etapas acima em todos os processadores de mensagens.
Verificar a configuração da SNI nos processadores de mensagens
Esta seção explica como verificar se a configuração da SNI foi atualizada com sucesso nos processadores de mensagens.
Mesmo que você use o token conf_system_jsse.enableSNIExtension para
configurar a SNI no processador de mensagens, é 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.enableSNIExtensionno diretório/opt/apigee/edge-message-processor/confe 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 da SNI for atualizada no processador de mensagens, o
comando acima mostrará o novo valor no arquivo
system.properties.O resultado de amostra do comando acima depois de ativar a SNI no processador de mensagens é o seguinte:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
Da mesma forma, o resultado de amostra do comando acima depois de desativar a SNI no processador de mensagens é o seguinte:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
Na saída de exemplo acima, observe que a propriedade
jsse.enableSNIExtensionfoi atualizada para o novo valortrueoufalseemsystem.properties. Isso indica que a SNI foi ativada ou desativada no processador de mensagens. -
Se você ainda vir o valor antigo da propriedade
jsse.enableSNIExtension, então verifique se seguiu todas as etapas descritas na seção apropriada para ativar ou desativar a SNI corretamente. Se você perdeu alguma etapa, repita todas as etapas corretamente. - Se você ainda não conseguir ativar/desativar a SNI , entre em contato com o suporte do Apigee Edge.