Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações
Você pode configurar o portal para usar o TLS. Procedimento de configuração de TLS para o portal depende de como você implantou o portal:
- Cloud: configure o TLS do Pantheon ou da Acquia, a hospedagem baseada na nuvem serviços para o portal.
- Apigee Edge for Private Cloud: configure o TLS no local no servidor que hospeda o portal.
TLS e o portal
A imagem abaixo mostra os dois lugares em que o portal usa TLS:
- Para comunicação entre o portal e a API Edge Management.
O portal não funciona como um sistema independente. Em vez disso, grande parte das informações usadas pelos o portal é armazenado no Edge, onde ele pode ser implantado na nuvem no local como uma instalação de nuvem privada. Quando necessário, o portal cria uma solicitação solicitação à API Edge Management para recuperar ou enviar informações.
Ao criar seu portal, uma das primeiras etapas a serem realizadas é especificar o URL do a API Edge Management. Dependendo de como a API Edge Management estiver configurada, esse URL podem usar TLS. Consulte Como criar no portal do desenvolvedor. - Para comunicação entre desenvolvedores e o portal.
Quando você usa o portal de serviços para desenvolvedores para implantar suas APIs, seus desenvolvedores fazem login no para registrar apps e receber chaves de API. As credenciais de login e a chave de API são informações reservadas que você deseja enviar por HTTPS para garantir sua segurança. Isso tipo de informação reservada deve ser enviado por HTTPS.
A maneira de configurar o TLS para esse cenário depende de como você implantou o portal: cloud ou Apigee Edge para nuvem privada. As seções a seguir descrevem nos dois cenários.
Como configurar o TLS entre o portal e a API Edge Management
A configuração da API Edge Management determina se a comunicação pode ou não usar TLS. Se a API Edge Management estiver configurada para usar TLS, o portal poderá usar HTTPS. Caso contrário, o portal se comunicará com o Edge via HTTP. Portanto, como desenvolvedor de portais, só precisa saber como o Edge está configurado para definir a conexão entre o portal e Borda
Para o procedimento usado para configurar a conexão com a API Edge Management, consulte Como criar um desenvolvedor do Cloud Storage.
Versão do Edge baseada na nuvem
Se o portal se conectar à versão baseada na nuvem do Edge, o URL do Edge será Management é pré-configurada pela Apigee para usar o TLS. Ao configurar o portal, você acessa a API Edge Management usando o URL https://api.enterprise.apigee.com/v1;
Instalação da nuvem privada do Edge
Para uma instalação de nuvem privada do Edge, o URL da API de gerenciamento do Edge está no
formulário:
http://EdgePrivateCloudIp:8080/v1
ou:
https://EdgePrivateCloudIp:TLSport/v1
em que EdgePrivateCloudIp é o endereço IP do Edge Management O servidor do servidor e TLSport é a porta TLS da API de gerenciamento de borda. Por exemplo, o número da porta pode ser 8443 ou até 8080, com base na configuração do Edge.
Configurar o TLS entre os desenvolvedores e o Portal
A maneira de configurar o TLS entre os desenvolvedores e o portal depende de como você implantou o portal: cloud ou Apigee Edge para nuvem privada.
Portais baseados na nuvem
Pantheon (em inglês)
A Pantheon oferece HTTPS automatizado sem custo financeiro para todos os sites na plataforma por meio da Cantheon Global CDN e do uso do Let's Encrypt (em inglês). Consulte também HTTPS na CDN global do Pantheon.
Acquia
Para ativar o TLS/SSL usando o Acquia, consulte Ativar SSL.Edge para particular Portais na nuvem
Todas as instalações de nuvem privada recomendadas pela Apigee exigem que o portal seja por trás de um balanceador de carga, conforme mostrado abaixo:
Portanto, para instalações locais, você tem duas opções para configurar o TLS:
- Configurar TLS no balanceador de carga: configure o TLS no balanceador de carga e não no portal. Portanto, o procedimento usado para configurar o TLS é que dependem do balanceador de carga. Consulte a documentação do seu balanceador de carga para mais informações imprecisas ou inadequadas.
- Configurar o TLS no próprio portal: se necessário, configure o TLS nos o servidor da Web que hospeda o portal. Consulte Como configurar o portal para usar HTTPS para mais informações.
É necessário ter seu próprio certificado TLS antes de implantar o portal em uma produção de nuvem.
Como configurar configurações de TLS adicionais
Você pode editar o arquivo sites/default/settings.local.php (nuvem) ou sites/default/settings.php (particular Cloud) para fazer alterações na configuração de TLS do portal.
Ao editar o arquivo, adicione instâncias da função ini_set() para definir uma propriedade. Para mais informações sobre essa função, consulte: http://php.net/manual/en/function.ini-set.php.
É possível definir as seguintes propriedades em sites/default/settings.local.php (nuvem) ou sites/default/settings.php (particular Cloud):
- cookie_httponly:
(Recomendado) Especifica esse cookie como acessível somente pelo protocolo HTTP. Definir isto
propriedade como:
ini_set('session.cookie_httponly', true); - session.cookie_secure
- (opcional) especifica que os cookies só podem ser enviados por conexões seguras. No entanto,
significa que todo o conteúdo
precisa ser exibido por HTTPS. Se essa configuração for ativada, o site não
que trabalham com HTTP. Definir esta propriedade como:
ini_set('session.cookie_secure', true); - gc_maxlifetime
e cookie_lifetime:
(Opcional) gc_lifeteime
especifica o número de segundos após os quais os dados podem ser potencialmente limpos e
cookie_lifetime especifica
a vida útil do cookie em segundos. Definir essas propriedades como:
ini_set('session.gc_maxlifetime', 3.600);
ini_set('session.cookie_lifetime', 3600);
Para mais informações sobre como configurar o TLS entre o portal do desenvolvedor e os clientes, consulte Ative o SSL para comunicação HTTPS segura no site do documento Pantheon.
Como configurar TLS com balanceadores de carga
Para melhorar o desempenho, os balanceadores de carga às vezes são configurados para encerrar TLS. Com o encerramento de TLS, os balanceadores de carga descriptografam as mensagens enviadas por https:// e as encaminham para o back-end. por http://. Isso economiza aos servidores de back-end a sobrecarga de descriptografar mensagens https://.
Se balanceadores de carga encaminharem mensagens http não criptografadas para servidores no mesmo data center, a segurança não é um problema. No entanto, se os balanceadores de carga encaminharem mensagens por http:// para servidores fora dos dados central, como o portal de desenvolvedores da Apigee, as mensagens não são criptografadas, o que abre uma uma falha de segurança.
Se o portal do desenvolvedor estiver protegido por balanceadores de carga que usam terminação TLS e você quiser que todo o tráfego seja veiculado por https://, as páginas do site terão que conter apenas links https:// Adicione o código a seguir ao portal sites/default/settings.local.php (nuvem) ou sites/default/settings.php (particular Cloud). Como o balanceador de carga não transforma automaticamente o conteúdo do páginas HTML, o código garante que todos os links transmitidos ao cliente comecem com https://.
Para configurar o TLS com balanceadores de carga, adicione as seguintes linhas a sites/default/settings.local.php (nuvem) ou sites/default/settings.php (particular Cloud):
// Only check for SSL if we are not using PHP from the command line. if (PHP_SAPI != 'cli') { // Assume we can't detect SSL unless proven otherwise. $can_detect_ssl = FALSE; // Set HTTPS URL of portal $base_url = 'https://developers.myCo.com'; if (isset($_SERVER['HTTP_X_FORWARDED_PROTO' ]) || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) { $can_detect_ssl = TRUE; } if (isset($_SERVER['HTTP_X_FORWARDED_PROTO' ]) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO' ]) == 'https') { $_SERVER['HTTPS'] = 'on'; } if ($can_detect_ssl && $_SERVER['HTTPS'] != 'on') { header('HTTP/1.0 301 Moved Permanently'); // You could optionally substitute a canonical server name for $_SERVER['HTTP_HOST'] here. header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); exit; } }
Confira mais informações em:
- https://drupal.org/node/425990
- https://drupal.org/node/313145
- http://drupal.stackexchange.com/questions/102091/drupal-behind-a-ssl-offloading-reverse-proxy-is-this-config-correct
Como redirecionar o tráfego do portal para HTTPS
É possível redirecionar todo o tráfego do portal para HTTPS atualizando sites/default/settings.local.php (nuvem) ou sites/default/settings.php (particular Cloud). As atualizações necessárias variam dependendo do tipo de redirecionamento para HTTPS ou do mesmo ou vários nomes de host.
Redirecionando para HTTPS no mesmo nome de host
Adicione o seguinte código ao arquivo sites/default/settings.local.php (nuvem) ou sites/default/settings.php (nuvem privada) para redirecionar para todo o tráfego do portal para HTTPS no mesmo nome de host (por exemplo, *.devportal.apigee.io);
Neste cenário, se um desenvolvedor acessar seu portal em live-example.devportal.apigee.io, mas precisar acessar um certificado que foi carregado para devportal.example.com, a solicitação falhar.
// Only check for SSL if we are not using PHP from the command line. if (PHP_SAPI != 'cli') { // Assume we can't detect SSL unless proven otherwise. $can_detect_ssl = FALSE; if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) { $can_detect_ssl = TRUE; } if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https') { $_SERVER['HTTPS'] = 'on'; } if ($can_detect_ssl && $_SERVER['HTTPS'] != 'on') { header('HTTP/1.0 301 Moved Permanently'); header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); exit; } }
Redirecionando para HTTPS em vários nomes de host
Adicione o seguinte código ao seu arquivo sites/default/settings.local.php (nuvem) ou sites/default/settings.php (nuvem privada) para redirecionar para todo o tráfego do portal para HTTPS em vários nomes de host.
// Only check for SSL if we are not using PHP from the command line. if (PHP_SAPI != 'cli') { // Assume we can't detect SSL unless proven otherwise. $can_detect_ssl = FALSE; // Assume we are not forcing a redirect until proven otherwise. $force_redirect = FALSE; if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) { $can_detect_ssl = TRUE; } if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https') { $_SERVER['HTTPS'] = 'on'; } if ($can_detect_ssl && $_SERVER['HTTPS'] != 'on') { // We will force a redirect because HTTPS is required. $force_redirect = TRUE; } // This works on Pantheon only; the constant is undefined elsewhere. switch (PANTHEON_ENVIRONMENT) { case 'dev': $canonical_hostname = 'dev.devportal.example.com'; break; case 'test': $canonical_hostname = 'test.devportal.example.com'; break; case 'live': $canonical_hostname = 'devportal.example.com'; break; default: $canonical_hostname = strtolower($_SERVER['HTTP_HOST']); break; } if ($canonical_hostname != strtolower($_SERVER['HTTP_HOST'])) { // We will force a redirect because hostname is not canonical. $force_redirect = TRUE; } if ($force_redirect) { header('HTTP/1.0 301 Moved Permanently'); header('Location: https://' . $canonical_hostname . $_SERVER['REQUEST_URI']); exit; } }