Como configurar a SNI entre o Edge Message Processor e o servidor de back-end

Esta é a documentação do Apigee Edge.
Acesse 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 veiculados do 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 o SNI é ativado em um cliente, o cliente passa o nome do host do servidor de back-end como parte do handshake de TLS inicial. Isso permite que servidor TLS para determinar qual certificado TLS deve ser usado para validar a solicitação do para o cliente.

Por padrão, a SNI está desativada no componente "Processador de mensagens" no Edge para a nuvem privada para garantir a compatibilidade com versões anteriores dos servidores de back-end atuais. Se o servidor de back-end for configurado para aceitar SNI, você precisa ativar o SNI no componente Processador de mensagens. Caso contrário, as solicitações de API que passam pelo Apigee Edge falharão com Falhas de handshake de TLS.

Neste documento, explicamos como:

Antes de começar

Identificação do servidor com SNI ativada

Esta seção descreve como identificar se um servidor de back-end está ou não ativado para o SNI.

  1. 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
    
  2. É possível conseguir os certificados e, às vezes, observar a falha de handshake no 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
    
  3. Execute o comando openssl e tente se conectar ao servidor relevante. nome do host (roteador de borda ou servidor de back-end) transmitindo o nome do servidor, conforme mostrado abaixo:
    openssl s_client -connect hostname:port -servername hostname
    
  4. Se você receber uma falha de handshake na etapa 1 ou certificados diferentes nas etapas 1 e 2, indica que o servidor especificado está com o SNI ativado.
  5. Se você quiser verificar isso para mais de um servidor de back-end, precisará repita as etapas acima para cada servidor de back-end.

Se você tiver um ou mais servidores de back-end com SNI ativada, precisará ativar o SNI no componente Processador de mensagens, conforme explicado abaixo. Caso contrário, a API solicitações que passam pelo Apigee Edge falharão com Falhas de handshake de TLS.

Ativar SNI entre processadores de mensagens de borda e o servidor de back-end

Esta seção explica como ativar o SNI entre o Edge Message Processor e o back-end servidor. O SNI pode ser ativado pela propriedade jsse.enableSNIExtension em o componente Processador de mensagens. Para configurar qualquer propriedade no processador de mensagens, use token de acordo com a sintaxe descrita em Como configurar o Edge.

Para ativar a SNI nos processadores de mensagens, siga estas etapas:

  1. Localizar o token da propriedade jsse.enableSNIExtension
  2. Ativar SNI no processador de mensagens

Localizar token para a propriedade jsse.enableSNIExtension

As etapas a seguir descrevem como localizar o token do Propriedade jsse.enableSNIExtension:

  1. Pesquise a propriedade jsse.enableSNIExtension na origem do processador de mensagens. diretório /opt/apigee/edge-message-processor/source usando o seguinte comando:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
    
  2. 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}
    

    Em que a string entre as tags {T}{/T} é o nome do token que que podem ser definidas no arquivo .properties do processador de mensagens.

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

  1. Na máquina do processador de mensagens, abra o arquivo a seguir em um editor. Se não já existe, então 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
    
  2. Adicione uma linha no seguinte formato ao arquivo de propriedades:
    conf_system_jsse.enableSNIExtension=true
    
  3. Salve as alterações.
  4. Verifique se esse arquivo de propriedades pertence ao usuário apigee, conforme mostrado abaixo:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Reinicie o processador de mensagens conforme mostrado abaixo:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Verifique se a configuração da SNI está atualizada no Processador de mensagens.
  7. Se você tiver mais de um processador de mensagens, repita as etapas acima em todos Processadores de mensagens

Desativar SNI entre processadores de mensagens de borda e o servidor de back-end

Geralmente, você não terá problemas depois de ativar a SNI. No entanto, se você observar quaisquer problemas de conectividade entre o processador de mensagens de borda e o servidor de back-end após Ao ativar a SNI, você sempre poderá desativá-la seguindo as etapas abaixo.

O SNI pode ser desativado ao definir a propriedade jsse.enableSNIExtension de volta para false no componente "Processador de mensagens".

Desativar SNI nos processadores de mensagens

As etapas a seguir descrevem como desativar a SNI nos processadores de mensagens da Apigee.

  1. Na máquina do processador de mensagens, abra o arquivo a seguir em um editor. Se não já existe, então 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
    
  2. Se a linha conf_system_jsse.enableSNIExtension=true existir em /opt/apigee/customer/application/message-processor.properties e modifique-o como da seguinte forma:
    conf_system_jsse.enableSNIExtension=false
    
  3. Salve as alterações.
  4. Verifique se esse arquivo de propriedades pertence ao usuário apigee, conforme mostrado abaixo:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Reinicie o processador de mensagens conforme mostrado abaixo:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Verifique se a configuração da SNI está atualizada no Processador de mensagens.
  7. Se você tiver mais de um processador de mensagens, repita as etapas acima em todos Processadores de mensagens

Como verificar a configuração do SNI nos processadores de mensagens

Esta seção explica como verificar se a configuração do SNI foi configurada atualizada nos processadores de mensagens.

Mesmo que você use o token conf_system_jsse.enableSNIExtension para configurar o SNI no processador de mensagens, você precisa verificar se a propriedade jsse.enableSNIExtension foi definido com o novo valor.

  1. Na máquina do processador de mensagens, pesquise a propriedade jsse.enableSNIExtension. no diretório /opt/apigee/edge-message-processor/conf e verifique se ele tem foi definido com o novo valor, conforme mostrado abaixo:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
    
  2. Se a configuração SNI for atualizada com êxito no processador de mensagens, o acima mostra o novo valor no arquivo system.properties.

    O resultado de amostra do comando acima depois de você ter ativado a SNI no processador de mensagens é o seguinte:

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
    

    Da mesma forma, o resultado da amostra do comando acima depois de você ter desativado o SNI no O 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 atualizado para o novo valor true ou false em system.properties. Isso indica que o SNI foi ativado ou desativada no processador de mensagens.

  3. Se você ainda vir o valor antigo da propriedade jsse.enableSNIExtension, verifique se você seguiu todas as etapas descritas na seção apropriada para ativar ou desativar o SNI corretamente. Se você tiver pulado alguma etapa, repita-a corretamente.
  4. Se você ainda não conseguir ativar/desativar a SNI , entre em contato Suporte do Apigee Edge.