Você está visualizando a documentação do Apigee Edge.
Acesse a
documentação da
Apigee X. info
Um cliente do Cloud com uma conta paga pode criar um host virtual em uma organização.
Saiba mais:
Quem pode criar e modificar hosts virtuais na nuvem
A criação e a modificação de hosts virtuais estão disponíveis apenas para contas pagas na Edge Cloud. O usuário que cria o host virtual precisa ter a função de administrador da organização ou uma função personalizada com permissões para modificar um host virtual. Os usuários em outras funções não têm autorização para criar hosts virtuais.
Por exemplo, os clientes pagos podem:
- Ativar o TLS unidirecional e bidirecional
- Especificar o keystore/truststore usado pelo host virtual
As contas sem custo financeiro e de teste não podem criar ou modificar hosts virtuais e são limitadas aos hosts virtuais criados para elas no momento do registro do Edge. Para mais informações sobre os planos de preços do Edge, consulte https://apigee.com/api-management/#/pricing.
Requisitos para configurar um host virtual para a nuvem
A tabela a seguir resume os requisitos para criar um host virtual:
Categorias | Requisito | Descrição |
---|---|---|
Tipo de conta | Pago | As contas sem custo financeiro e de teste não podem criar ou modificar hosts virtuais. |
Função do usuário | administrador da organização | Somente um administrador da organização pode criar um host virtual ou um usuário em uma função personalizada que tenha permissões para modificar um host virtual. |
Número de hosts virtuais | Máximo de 20 |
O limite é de 20 hosts virtuais por organização/ambiente na nuvem. Observação: não há limite para o número de hosts virtuais na nuvem privada. A maioria das organizações/ambientes usa dois hosts virtuais: um para acesso HTTP e outro para HTTPS. Talvez você precise de hosts virtuais adicionais se a organização/ambiente permitir o acesso usando nomes de domínio diferentes. |
URL de base | Inclui o protocolo | Ao definir o URL de base para o host virtual, seja na interface do usuário ou com a API, você precisa especificar o protocolo (ou seja, "http://" ou "https://") como parte do URL. |
Porta | 443 |
Só é possível criar um host virtual na porta 443. É possível criar vários hosts virtuais na porta 443, desde que eles tenham aliases de host exclusivos e sejam compatíveis com TLS. |
TLS | Obrigatório |
Só é possível criar um host virtual compatível com TLS por HTTPS. Você precisa ter criado um keystore e, opcionalmente, um truststore com o certificado e a chave TLS. Você precisa ter um certificado assinado por uma entidade confiável, como a Symantec ou a VeriSign. Não é possível usar um certificado autoassinado. Se você precisar de acesso HTTP, entre em contato com o suporte do Apigee Edge. |
Protocolo TLS | TLS 1.2 |
O Edge na Nuvem é compatível apenas com a versão 1.2 do TLS. |
Alias do host | Único na organização e no ambiente | O alias de host não existe para outra combinação de organização/ambiente. |
Nome de domínio | De propriedade do cliente |
Você precisa ser proprietário do nome de domínio especificado no host virtual. O Edge verifica se o nome de domínio, conforme definido pelo alias do host, corresponde aos metadados no certificado TLS. Especificamente, o Edge verifica as seguintes informações no certificado:
Os caracteres curinga são permitidos no SAN ou CN, por exemplo, O Edge também valida se o certificado não expirou. |
Compatibilidade com SNI do app cliente | Todos os apps clientes que acessam o host virtual precisam oferecer suporte a SNI. |
O suporte a SNI é obrigatório para todos os apps. |
Criar um host virtual usando um navegador
A maioria dos exemplos desta seção usa a API Edge para criar ou modificar hosts virtuais, mas você pode criar um host virtual na interface do Edge.
Para criar um host virtual usando a interface do Edge:
- Faça login em apigee.com/edge.
- Selecione Administrador > Hosts virtuais.
- Selecione o ambiente, como prod ou test.
- Selecione + Host virtual para criar um host virtual ou selecione o nome de um host virtual para editá-lo.
- Consulte a tabela acima para informações detalhadas sobre como preencher os campos do host virtual.
Como definir um host virtual para o TLS unidirecional
Um objeto XML que define o host virtual. Por exemplo, o objeto XML a seguir define um host virtual para TLS unidirecional:
<VirtualHost name="myTLSVHost"> <HostAliases> <HostAlias>api.myCompany.com</HostAlias> </HostAliases> <Port>443</Port> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>ref://myTestKeystoreRef</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> </SSLInfo> </VirtualHost>
Nessa definição, você:
- Especifique o nome como myTLSVHost. Use o nome para fazer referência ao host virtual em um proxy de API ou em uma chamada de API.
- Especifique o alias do host como api.myCompany.com. Esse é o domínio público usado para acessar suas APIs, conforme definido por uma definição de DNS e registro CNAME.
- Especifique o número da porta como 443. Se omitida, a porta será definida como 443 por padrão.
- Ative o TLS conforme necessário.
O elemento<Enable>
é definido como "true" para ativar o TLS unidirecional, e os elementos e<KeyStore>
especificam o keystore e o alias da chave usados pela conexão TLS.
Ative o TLS bidirecional definindo<ClientAuthEnabled>
como verdadeiro e especificando um truststore usando o elemento<TrustStore>
. O repositório de confiança contém o emissor do certificado do cliente e a cadeia de AC do certificado, o que é obrigatório.
Observação:como o Edge originalmente oferecia suporte a SSL, a tag usada para configurar o TLS é chamada<SSLInfo>
.
Há outras propriedades que podem ser definidas no host virtual. Para uma referência de todas as propriedades, consulte Referência da propriedade de host virtual.
Como especificar o nome do keystore e do truststore no host virtual
Ao configurar um host virtual para aceitar TLS, você especifica um keystore usando uma referência. Uma referência é uma variável que contém o nome do keystore ou do truststore, em vez de especificar o nome do keystore ou truststore diretamente, conforme mostrado abaixo:
<SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>ref://myTestKeystoreRef</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> </SSLInfo>
A vantagem de usar uma referência é poder alterar o valor da referência para mudar o keystore usado pelo host virtual, geralmente porque o certificado no keystore atual expira em breve. Alterar o valor da referência não exige que você reinicie o roteador de borda. Consulte Como trabalhar com referências para mais informações sobre como criar e modificar referências.
Só é possível usar uma referência ao keystore e truststore. Não é possível usar uma referência ao alias. Ao alterar a referência para um keystore, verifique se o nome do alias do certificado é o mesmo do keystore antigo.
Restrições ao usar referências a keystores e truststore
Você precisa considerar a seguinte restrição ao usar referências a keystores e truststores:
- Só será possível usar referências de keystore e truststore em hosts virtuais se você oferecer suporte à SNI e encerrar o SSL nos roteadores da Apigee.
- Se você tiver um balanceador de carga na frente dos roteadores da Apigee e encerrar o TLS no balanceador, não será possível usar as referências do keystore e truststore em hosts virtuais.
Como definir um host virtual para TLS bidirecional
Para ativar o TLS bidirecional, defina o elemento <ClientAuthEnabled>
como
true
e especifique um truststore usando
uma referência com o elemento <TrustStore>
. O repositório de confiança
contém o emissor do certificado do cliente e a cadeia de AC do certificado, o que é necessário. O cliente também precisa ser
configurado corretamente para o TLS bidirecional.
Para criar um host virtual para TLS bidirecional, crie um objeto XML que defina o host virtual:
<VirtualHost name="myTLSVHost"> <HostAliases> <HostAlias>api.myCompany.com</HostAlias> </HostAliases> <Port>443</Port> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>true</ClientAuthEnabled> <KeyStore>ref://myTestKeystoreRef</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> <TrustStore>ref://myTestTruststoreRef</TrustStore> </SSLInfo> </VirtualHost>
Nessa definição, você:
- Ative o TLS bidirecional configurando
<ClientAuthEnabled>
como verdadeiro. - Especifique a referência ao repositório de confiança usando o elemento
<TrustStore>
. O repositório de confiança contém o emissor do certificado do cliente e a cadeia de AC do certificado, o que é obrigatório.
Como definir um host virtual que usa o certificado e a chave de avaliação sem custo financeiro da Apigee
Se você tiver uma conta paga do Edge para Cloud e ainda não tiver um certificado e uma chave TLS, crie um host virtual que use o certificado e a chave de avaliação sem custo financeiro da Apigee. Isso significa que você pode criar o host virtual sem primeiro criar um keystore.
O certificado de teste sem custo financeiro da Apigee é definido para um domínio de *.apigee.net
. Portanto, o
<HostAlias>
do host virtual também precisa estar no formato *.apigee.net
.
Se você estiver executando o TLS bidirecional, ainda precisará definir o elemento <ClientAuthEnabled>
como
true
e especificar um truststore usando uma referência com o elemento <TrustStore>
, conforme descrito acima em Como definir um host virtual para TLS bidirecional.
Um objeto XML que define o host virtual usando o certificado e a chave da Apigee
<KeyStore>
e <KeyAlias>
elementos e os substitui por
<UseBuiltInFreeTrialCert>
, conforme mostrado abaixo:
<VirtualHost name="myTLSVHost"> <HostAliases> <HostAlias>myapi.apigee.net</HostAlias> </HostAliases> <Port>443</Port> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> </SSLInfo> <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert> </VirtualHost>
O valor padrão do elemento <UseBuiltInFreeTrialCert>
é falso.
Para TLS bidirecional, defina o host virtual como:
<VirtualHost name="myTLSVHost"> <HostAliases> <HostAlias>myapi.apigee.net</HostAlias> </HostAliases> <Port>443</Port> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>true</ClientAuthEnabled> <TrustStore>ref://myTestTruststoreRef</TrustStore> </SSLInfo> <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert> </VirtualHost>
Na interface do Edge, selecione a opção Use built-in free trial certificate ao criar o host virtual para usar o certificado e a chave sem custo financeiro da Apigee:
Como criar um host virtual
Use o procedimento a seguir para criar o host virtual:
- Crie uma entrada DNS e um registro CNAME para o domínio público,
api.myCompany.com
neste exemplo, que aponte para[org]-[environment].apigee.net
. - Crie e configure um keystore, chamado myTestKeystore neste exemplo, usando o procedimento descrito aqui: Como criar keystores e truststores usando a interface do Edge. Para este exemplo, verifique se o keystore usa um nome de alias de myKeyAlias para o certificado e a chave privada.
- Faça upload do certificado e da chave para o keystore. Verifique se o nome de domínio especificado pelo certificado corresponde ao alias de host que você quer usar para o host virtual.
-
Crie uma referência para o keystore usando a interface ou a API Edge. A referência especifica o nome do keystore e o tipo de referência como
KeyStore
. Consulte Como trabalhar com referências para saber mais sobre como criar e modificar referências. - Crie o host virtual usando a API Criar um host virtual. Especifique a referência de keystore e o alias de chave corretos.
Para usar a API, use a seguinte chamada POST API para criar o keystore
chamado myTLSVHost:
curl -X POST -H "Content-Type:application/xml" \ https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/virtualhosts \ -d '<VirtualHost name="myTLSVHost"> <HostAliases> <HostAlias>api.myCompany.com</HostAlias> </HostAliases> <Port>443</Port> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>ref://myTestKeystoreRef</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> </SSLInfo> </VirtualHost>' \ -u orgAdminEmail:password
Se você estiver executando o TLS bidirecional com o cliente, defina
<ClientAuthEnabled>
como verdadeiro e especifique o truststore usando o elemento<TrustStore>
. O cliente precisa ser configurado corretamente para o TLS bidirecional, o que significa que o Edge tem um truststore contendo o emissor do certificado e a cadeia de certificados do cliente. Crie o repositório de confiança usando o procedimento descrito aqui: Como criar keystores e repositórios de confiança usando a interface do Edge. Se você já tiver proxies de API, adicione o host virtual ao elemento
<HTTPConnection>
no ProxyEndpoint. O host virtual é adicionado automaticamente a todos os novos proxies de API. Consulte Como configurar um proxy de API para usar um host virtual.
Depois de atualizar um proxy de API para usar o host virtual e criar a entrada DNS e o registro CNAME para o alias do host, é possível acessar o proxy de API conforme mostrado abaixo:
https://api.myCompany.com/v1/{project-base-path}/{resource-path}
Exemplo:
https://api.myCompany.com/v1/weather/forecastrss?w=12797282
Como modificar um host virtual
Há duas tarefas principais que os clientes do Cloud pagam para modificar um host virtual:
- Modificar o valor de uma referência a um keystore ou um truststore.
Observação: depois de definir<KeyStore>
ou<TrustStore>
para usar uma referência, é possível mudar o valor dela a qualquer momento. No entanto, se você quiser mudar<KeyStore>
ou<TrustStore>
para usar uma referência diferente ou mudar<KeyAlias>
para usar um alias diferente, entre em contato com o suporte do Apigee Edge. - Modificar as propriedades TLS do host virtual.
Como modificar o valor de uma referência
É possível modificar o valor de uma referência para mudar o keystore ou o truststore usado por um host virtual.
Antes de modificar o valor da referência:
- Crie um novo keystore e faça upload de um certificado e de uma chave, conforme descrito em Como criar keystores e truststores usando a interface do Edge. No novo keystore, use o mesmo nome para o alias de chave que foi usado no keystore atual.
- Se necessário, crie um novo truststore e faça upload de um certificado, conforme descrito em Como criar keystores e truststore usando a interface do Edge.
- Modifique a referência conforme descrito em Como trabalhar com referências.
Modificar as propriedades do TLS do host virtual
Os clientes pagos podem usar a API Atualizar um host virtual para atualizar um host virtual. Essa API permite definir todas as propriedades do host virtual descritas em Referência da propriedade do host virtual.
Quando você modifica o host virtual, o Edge executa uma validação semelhante à criação de um host virtual. Ou seja, em uma modificação, o Edge valida que:
- O domínio especificado pelo alias de host não é usado em outra organização e ambiente.
- Você é o proprietário do nome de domínio. Especificamente, o Edge verifica se as seguintes informações no
certificado correspondem ao alias do host:
- CN: nome comum
- SAN: nome alternativo do assunto
- O Edge valida se o certificado não expirou.
Para modificar um host virtual usando a API Edge, faça o seguinte:
Atualize o host virtual usando a API Update a Virtual Host. Ao usar a API, é necessário especificar a definição completa do host virtual no corpo da solicitação, e não apenas os elementos que você quer mudar. Neste exemplo, você define o valor da propriedade
proxy_read_timeout
:curl -X PUT -H "Content-Type:application/xml" \ https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/virtualhosts/{vhost_name} \ -d '<VirtualHost name="myTLSVHost"> <HostAliases> <HostAlias>api.myCompany.com</HostAlias> </HostAliases> <Port>443</Port> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>ref://myTestKeystoreRef</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> </SSLInfo> <Properties> <Property name="proxy_read_timeout">50</Property> </Properties> </VirtualHost>' \ -u orgAdminEmail:password
Modificar um host virtual para usar referências ao keystore e ao truststore
Todos os novos hosts virtuais do Edge na nuvem usam a referência ao keystore e ao truststore. Com as referências, você pode mudar o keystore e o truststore sem entrar em contato com o suporte do Apigee Edge.
Os hosts virtuais mais antigos no Apigee Edge podem não estar configurados para usar referências a keystores e truststores. Nesse caso, é possível atualizar o host virtual para usar uma referência.
Como atualizar um host virtual para usar uma referência
Use o procedimento a seguir para atualizar o host virtual:
- Se necessário, crie um novo keystore e faça upload de um certificado, conforme descrito em Como criar keystores e truststores usando a interface do Edge. Se você já tem um keystore, configure uma referência para apontar para ele.
- Crie uma nova referência ao keystore.
- Se necessário, crie um novo repositório de confiança e faça upload de um certificado. Se você já tem um truststore, pode configurar uma referência para apontar para ele.
- Crie uma nova referência para o truststore.
- Atualize o host virtual para definir o keystore, o alias, o truststore e outras propriedades
TLS. O payload da chamada é:
curl -X PUT -H "Content-Type:application/xml" \ https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/virtualhosts/{vhost_name} \ -d '<VirtualHost name="myTLSVHost"> <HostAliases> <HostAlias>api.myCompany.com</HostAlias> </HostAliases> <Port>443</Port> <OCSPStapling>off</OCSPStapling> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>true</ClientAuthEnabled> <KeyStore>ref://myKeyStore2Way</KeyStore> <KeyAlias>keyAlias</KeyAlias> <TrustStore>ref://myTrustStore2Way</TrustStore> <IgnoreValidationErrors>false</IgnoreValidationErrors> </SSLInfo> </VirtualHost>' \ -u orgAdminEmail:pWord
- Entre em contato com o suporte da Apigee para reiniciar os roteadores de borda e concluir o processo.