Problema

Quando si accede all'AEM attraverso un SSL terminato con un load balancer (o un SSL terminato con CDN), AEM reindirizza poi da https a http.

La terminazione SSL al load balancer significa che i certificati SSL sono installati nel load balancer. L'utente finale accede al sito attraverso https://, mentre il Dispatcher/Web Server e l'AEM sono accessibili sul back-end con http://.

Causa

Diversi load balancer inviano intestazioni diverse per notificare ai sistemi di back end che SSL è terminato a monte. Ad esempio, Amazon ELB utilizza l'intestazione "X-Forwarded-Proto: https".

Risoluzione

Per risolvere il problema:

I. Installare Hotix 6922:

Se sei in AEM6.0 o 6.1:

  1. Vai su http://aem-host:port/crx/packmgr/index.jsp, e accedi come amministratore.

  2. Installare la zip hotfix nel gestore di pacchetti AEM.

    Nota:

    Questo hotfix aiuta ad evitare un problema in cui l'ancoraggio dell'url viene perso durante il redirect aggiornato dal filtro SSL Apache Felix.  Ad esempio, https://host/cf#/content/geometrixx/en.html sarà reindirizzato a https://host/cf senza questa correzione.

ii. Aggiorna la configurazione Dispatcher /clientheaders

Fare riferimento alla documentazione del proprio load balancer per scoprire quale intestazione imposta per notificare ai sistemi a valle che ha terminato l'SSL. Per semplicità, in questi passaggi assumiamo che l'intestazione HTTP corretta sia "X-Forwarded-Proto: https"

  1. Accedi al server del dispatcher.

  2. Aprire il dispatcher farm .any configuration.

  3. Aggiungere l'intestazione alla sezione /clientheaders

Se si utilizza un dispatcher senza load balancer, o se lo stesso o il proxy non riesce a impostare l'header X-Forwarded-Proto, è possibile impostarlo a livello di Web server o di dispatcher. Se si utilizza il server Apache HTTP, aggiornare il proprio HTTPS VirtualHost con questa direttiva:

RequestHeader set X-Forwarded-Proto "https"

iii. Aggiornare le configurazioni dell'intestazione:

  1. Vai su http://host:port/system/console/configMgr/org.apache.felix.felix.http.sslfilter.SslFilter, ed effettua il login come amministratore.

  2. Imposta l'intestazione SSL forward su X-Forwarded-Proto.

  3. Imposta SSL su inoltra valore su https

  4. Fai clic su Salva.

Nota:

Non esiste uno standard per le intestazioni di reverse proxy che dicono al back end quale protocollo viene utilizzato. Tuttavia, qui ce ne sono alcuni noti:

  • Amazon ELB (Elastic Load Balancer) utilizza l'intestazione "X-Forwarded-Proto: https".
  • Amazon Cloudfront CDN utilizza l'intestazione "X-Cloudfront-Proto: https".

IV. Aggiornare la configurazione del Jetty OSGi (AEM 6.3 e versioni successive)

Sulle versioni AEM 6.3 e successive è necessaria una configurazione aggiuntiva:

  1. Accedi a http://aem-host:port/system/console/configMgr/org.apache.felix.http.

  2. Abilitare l'impostazione Enable Proxy/Load Balancer Connection e salvarla.

  3. Cercare il servizio di autenticazione Sling e aprire la configurazione

  4. Deselezionare Consenti accesso anonimo.

  5. Fate clic su Salva.

Per ulteriori dettagli su questo problema, fai riferimento all'articolo sulla soluzione.

Questo prodotto è concesso in licenza in base alla licenza di Attribuzione-Non commerciale-Condividi allo stesso modo 3.0 Unported di Creative Commons.  I post su Twitter™ e Facebook non sono coperti dai termini di Creative Commons.

Note legali   |   Informativa sulla privacy online