AEM redireciona o usuário para http quando acessado por meio de balanceador de carga terminado por SSL/TLS

Descrição

Ambiente

  • Experience Manager

Problemas/sintomas
Ao acessar AEM por meio de um balanceador de carga terminado por SSL (ou CDN terminado por SSL), AEM redireciona de https para http.

A terminação SSL no balanceador de carga significa que os certificados SSL estão instalados no balanceador de carga. O usuário final acessa o site por meio de https://, e o Dispatcher/Web Server e AEM são acessados no back-end com http://.

Resolução

Causa

Diferentes balanceadores de carga enviam cabeçalhos diferentes para notificar os sistemas de back-end que SSL termina em upstream. Por exemplo, o Amazon ELB usa o cabeçalho “X-Forwarded-Proto: https”.

​ ​ ​ ​ ​ ​

Para corrigir o problema:

I. Atualize a configuração /clientheaders do Dispatcher

Consulte a documentação do seu balanceador de carga para descobrir qual cabeçalho ele define para notificar os sistemas downstream de que encerrou o SSL. Para simplificar, nestas etapas, pressupomos que o cabeçalho HTTP correto é "X-Forwarded-Proto: https"

  1. Faça logon no servidor do dispatcher.
  2. Abra a configuração .any do farm do dispatcher.
  3. Adicione o cabeçalho à seção /clientheaders.

Se você estiver usando o dispatcher sem um balanceador de carga ou se o balanceador de carga ou proxy falhar ao definir a variável X-Forwarded-Proto , é possível defini-lo no nível do servidor da Web ou do dispatcher. Se estiver usando Apache HTTP Servidor e, em seguida, atualize seu Host virtual HTTPS com a presente diretiva:

1 RequestHeader  set X-Forwarded-Proto  "https"

II. Atualize as configurações de cabeçalho:

  1. Ir para http://host:port/system/console/configMgr/org.apache.felix.http.sslfilter.SslFiltere faça logon como administrador.
  2. Definir SSL encaminhar cabeçalho para X-Forwarded-Proto.
  3. Definir SSL encaminhar valor para https.
  4. Clique em Salvar.

Observação:

Não há um padrão para cabeçalhos de proxy reverso que informam ao back-end qual protocolo é usado. No entanto, aqui estão alguns que são conhecidos:

  • O Amazon ELB (Elastic Load Balancer) usa o "X-Forwarded-Proto: https".
  • A CDN Amazon Cloudfront usa "X-Cloudfront-Proto: https".

III. Atualizar a configuração do OSGi do Jetty (AEM 6.3 e versões posteriores)

No AEM 6.3 e versões posteriores, é necessária uma configuração adicional:

  • Faça logon no http://aem-host:port/system/console/configMgr/org.apache.felix.http.
  • Ative a configuração Habilitar conexão de proxy/balanceador de carga e salve-a.

Nesta página