Umgebung
Probleme/Symptome
Beim Zugriff auf AEM über einen SSL beendeten Lastenausgleich (oder SSL-beendeten CDN) leitet AEM von HTTPS zurück zu HTTP.
SSL-Beendigung am Load-Balancer bedeutet, dass die SSL-Zertifikate im Load Balancer installiert sind. Der Endbenutzer greift über https:// auf die Site zu und der Dispatcher/Webserver und AEM werden über das Backend mit http:// aufgerufen.
Ursache
Verschiedene Lastverteiler senden verschiedene Header, um die Backend-Systeme darauf hinzuweisen, dass SSL wird vorgelagert beendet. Beispiel: Amazon ELB verwendet den Header „X-Forwarded-Proto: https“.
So beheben Sie das Problem:
I. Aktualisieren der Dispatcher-/clientheaders-Konfiguration
Lesen Sie in der Dokumentation Ihres Load-Balancers nach, welchen Header er setzt, um nachgelagerten Systemen mitzuteilen, dass er SSL beendet hat. Zur Vereinfachung gehen wir bei diesen Schritten davon aus, dass der richtige HTTP-Header "X-Forwarded-Proto: https"
Wenn Sie Dispatcher ohne Lastenausgleich verwenden oder wenn Ihr Lastenausgleich oder Proxy die X-Forwarded-Proto -Kopfzeile erstellen, können Sie sie auf der Webserver- oder Dispatcher-Ebene festlegen. Wenn Sie Apache HTTP Server und aktualisieren Sie dann Ihre HTTPS VirtualHost mit dieser Richtlinie:
1 | RequestHeader set X-Forwarded-Proto "https" |
---|
II. Aktualisieren Sie die Header-Konfigurationen:
http://host:port/system/console/configMgr/org.apache.felix.http.sslfilter.SslFilter
und melden Sie sich als Administrator an.Hinweis:
Es gibt keinen Standard für Reverse-Proxy-Header, die dem Back-End mitteilen, welches Protokoll verwendet wird. Hier sind jedoch einige bekannte:
III. Aktualisieren der Jetty-OSGi-Konfiguration (AEM 6.3 und neuere Versionen)
Für AEM 6.3 und neuere Versionen ist eine zusätzliche Konfiguration erforderlich:
http://aem-host:port/system/console/configMgr/org.apache.felix.http.