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 destinos HTTPS sejam veiculados no mesmo endereço IP e porta sem exigir que esses destinos usem o mesmo certificado TLS. Quando a SNI está ativada em um cliente, ele transmite o nome do host do endpoint de destino como parte do handshake TLS inicial. Isso permite que o servidor TLS determine qual certificado TLS precisa ser usado para validar a solicitação.
Por exemplo, se o destino da solicitação for https://example.com/request/path,
o cliente TLS vai adicionar a extensão server_name ao handshake TLS
solicitação, conforme mostrado abaixo:

O Edge oferece suporte à SNI para:
- Solicitações de um app cliente para um proxy de API. Nesse cenário, o Edge atua como o servidor TLS .
- Solicitações do Edge para o back-end. Nesse cenário, o Edge atua como o cliente TLS.
Para mais informações sobre a SNI, consulte:
- https://en.wikipedia.org/wiki/Server_Name_Indication
- http://blog.layershift.com/sni-ssl-production-ready/
Como oferecer suporte à SNI para uma solicitação ao proxy de API no Edge
O suporte à SNI para solicitações a proxies de API é controlado por aliases de host e hosts virtuais.
Sobre hosts virtuais e aliases de host
Com o Edge, um host virtual define o endereço IP e a porta ou o nome DNS e a porta em que um proxy de API é exposto e, por extensão, o URL que os apps usam para acessar um proxy de API. O endereço IP/nome DNS corresponde a um roteador do Edge, e o número da porta é uma porta aberta no roteador.
Ao criar o host virtual, você também especifica o alias dele.
Normalmente, esse é o nome DNS do host virtual. Como parte da determinação do proxy de API que
processa a solicitação, o roteador compara o Host cabeçalho da solicitação recebida com a
lista de aliases de host disponíveis definidos por todos os hosts virtuais.
A combinação de alias de host e número da porta para o host virtual precisa ser exclusiva para todos os hosts virtuais na instalação do Edge. Isso significa que vários hosts virtuais podem usar o mesmo número de porta se tiverem aliases de host diferentes.
Um host virtual também define se o proxy de API pode ser acessado usando o protocolo HTTP ou pelo protocolo HTTPS criptografado usando TLS. Ao configurar um host virtual para usar HTTPS, associe o host virtual a um keystore que contenha o certificado e a chave privada usados pelo host virtual durante o handshake TLS.
Para mais informações sobre hosts virtuais, consulte:
Como a SNI funciona com aliases de host
A SNI permite que você tenha vários hosts virtuais definidos na mesma porta, cada um com
certificados e chaves TLS diferentes. O Edge determina o host virtual e o par de certificado/chave usado pelo TLS,
com base na server_name
extensão na solicitação de handshake TLS.
O roteador do Edge lê a extensão server_name na solicitação de handshake TLS
e a usa para pesquisar os aliases de host de todos os hosts virtuais. Se o roteador detectar uma correspondência com um alias de host, ele vai usar o certificado e a chave TLS de
o host virtual associado ao alias de host. Se nenhuma correspondência for encontrada, o handshake TLS vai falhar.
Em vez de fazer com que o handshake TLS falhe, você pode definir um par de certificado/chave padrão, conforme descrito nas próximas seções.
Definir um par de certificado/chave padrão no Edge para Cloud
A Apigee fornece um certificado TLS e uma chave privada para oferecer suporte a HTTPS. Embora muitos clientes prefiram usar o próprio certificado e chave privada no momento da implantação, é possível implantar as APIs usando o certificado e a chave da Apigee.
No Edge para Cloud, se o roteador não conseguir corresponder o cabeçalho SNI a um alias de host ou se o cliente não oferecer suporte à SNI, o roteador vai usar o certificado padrão fornecido pela Apigee, que é *.apigee.net.
Definir um par de certificado/chave padrão no Edge para nuvem privada
No Edge para nuvem privada, se nenhuma correspondência for encontrada entre a extensão server_name e os aliases de host
de todos os hosts virtuais ou se o cliente solicitante não oferecer suporte à SNI, você poderá configurar o
roteador para usar o certificado/chave de um host virtual padrão na porta. O host virtual padrão é
definido por uma combinação de nome da organização, nome do ambiente e nome do host virtual, no
formato:
orgName_envName_vhName
O roteador usa o certificado/chave da combinação de orgName_envName_vhName que
aparece primeiro em ordem alfabética. Por exemplo, a solicitação chega na porta 443, e há
dois hosts virtuais definidos para a organização example no ambiente prod:
- nome do host virtual =
default - nome do host virtual =
test
Neste exemplo, o roteador usa o certificado/chave do host virtual chamado default
porque example_prod_default vem alfabeticamente antes de example_prod_test.
Para ativar o host virtual padrão:
- No primeiro nó do roteador, edite
/opt/apigee/customer/application/router.properties. Se esse arquivo não existir, crie-o. - Adicione a seguinte propriedade ao arquivo para permitir que você defina um host virtual padrão:
conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
- Reinicie o roteador:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- Repita essas etapas em todos os outros roteadores.
Em vez de usar o certificado/chave do host virtual padrão, você pode definir explicitamente o certificado/chave padrão no roteador. Use o procedimento a seguir para definir um par de certificado/chave padrão explícito:
- No primeiro nó do roteador, copie o certificado e a chave privada para um local no nó do roteador
que possa ser acessado pelo usuário da Apigee. Por exemplo,
/opt/apigee/customer/application. - Mude a propriedade dos arquivos para o usuário "apigee":
chown apigee:apigee /opt/apigee/customer/application/myCert.pem
chown apigee:apigee /opt/apigee/customer/application/myKey.pem
- Edite
/opt/apigee/customer/application/router.properties. Se esse arquivo não existir, crie-o. - Adicione as seguintes propriedades ao arquivo para permitir que você especifique o certificado/chave padrão:
conf_load_balancing_load.balancing.driver.nginx.fallback.server.default.ssl.template.enabled=true
conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true - Defina as seguintes propriedades em
router.propertiespara especificar o local do certificado e da chave:conf_load_balancing_load.balancing.driver.nginx.ssl.cert=/opt/apigee/customer/application/myCert.pem conf_load_balancing_load.balancing.driver.nginx.ssl.key=/opt/apigee/customer/application/myKey.pem
- Reinicie o roteador:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- Repita essas etapas em todos os outros roteadores.
Como oferecer suporte à SNI para solicitações do Edge para o back-end
O Edge oferece suporte ao uso da SNI de processadores de mensagens para endpoints de destino em implantações do Apigee Edge para Cloud e para nuvem privada. Por padrão, a SNI está ativada nos processadores de mensagens do Edge para Cloud e desativada na nuvem privada.
Como usar a SNI no back-end no Edge para nuvem privada
Para o Edge para nuvem privada, para ser compatível com versões anteriores dos back-ends de destino atuais, a Apigee desativou a SNI por padrão. Se o back-end de destino estiver configurado para oferecer suporte à SNI, você poderá ativar esse recurso conforme descrito abaixo para sua versão do Edge.
Nenhuma outra configuração específica do Edge é necessária. Se o ambiente de destino estiver configurado para SNI, o Edge vai oferecer suporte a ele. O Edge extrai automaticamente o nome do host do URL da solicitação e o adiciona à solicitação de handshake TLS.
Ativar a SNI entre o Edge e o back-end para a versão 4.15.07.0x do Edge
Use o procedimento a seguir para ativar a SNI:
- No primeiro nó do processador de mensagens, abra o arquivo
/opt/apigee4/conf/apigee/message-processor/system.propertiesem um editor. - Defina a seguinte propriedade como "true" em
system.properties:jsse.enableSNIExtension=true
- Reinicie os processadores de mensagens:
/opt/apigee4/bin/apigee-service message-processor restart
- Repita essas etapas em todos os outros processadores de mensagens.
Ativar a SNI entre o Edge e o back-end para a versão 4.16.01 e mais recentes do Edge
Use o procedimento a seguir para ativar a SNI:
- No primeiro nó do processador de mensagens, edite
/opt/apigee/customer/application/message-processor.properties. Se esse arquivo não existir, crie-o. - Adicione a seguinte propriedade ao arquivo:
conf_system_jsse.enableSNIExtension=true
- Reinicie o processador de mensagens:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Repita essas etapas em todos os outros processadores de mensagens.