Problem

Beim Zugriff auf AEM über einen SSL terminierten Lastverteiler (oder SSL terminierter CDN), leitet AEM die Verbindung von HTTPS auf HTTP zurück.

SSL-Terminierung an dem Lastverteiler bedeutet, dass die SSL-Zertifikate am Lastverteiler installiert sind. Der Endbenutzer greift auf die Seite über https:// zu und der Dispatcher/Webserver und AEM werden am Backend mit http:// aufgerufen.

Ursache

Verschiedene Lastverteiler senden verschiedene Kopfzeilen, um das Backend-System zu benachrichtigen, dass SSL stromaufwärts beendet wird. Zum Beispiel verwendet Amazon ELB die Kopfzeile „X-Forwarded-Proto: https“.

Lösung

So beheben Sie das Problem:

I. Installieren Sie Hotfix 6922:

Wenn Sie auf AEM6.0 oder 6.1 sind:

  1. Wenden Sie sich an die AEM-Kundenbetreuung und fordern Sie den Hotfix 6922 an. Der Hotfix ist für AEM 6.0, aber er funktioniert auch auf AEM 6.1.

  2. Gehen Sie zu http://aem-host:port/crx/packmgr/index.jsp und melden Sie sich als Administrator an.

  3. Installieren Sie die Hotfix-ZIP-Datei im AEM-Paket-Manager.

    Hinweis:

    Dieser Hotfix hilft ein Problem zu vermeiden, bei dem der URL-Anker während der vom Apache Felix SSL-Filter aktualisierten Umleitung verloren geht.  Zum Beispiel würde https://host/cf#/content/geometrixx/en.html ohne diesen Fix auf https://host/cf umgeleitet werden.

II. Aktualisieren Sie die Dispatcher /clientheaders Konfiguration.

In der Dokumentation zu Ihrem Lastverteiler erfahren Sie, welche Kopfzeile festgelegt wird, um Anschlusssysteme zu benachrichtigen, dass SSL beendet wurde. Zur Vereinfachung wird in diesen Schritten angenommen, dass die korrekte HTTP-Kopfzeile „X-Forwarded-Proto: https“ ist.

  1. Melden Sie sich beim Dispatcher-Server an.

  2. Öffnen Sie die Dispatcher farm .any Konfiguration.

  3. Fügen Sie die Kopfzeile zum Abschnitt /clientheaders hinzu.

Wenn Sie den Dispatcher ohne den Lastverteiler verwenden oder wenn Ihr Lastverteiler oder Proxy die X-Forwarded-Proto-Kopfzeile nicht festlegt, können Sie ihn auf der Webserver- oder Dispatcher-Ebene festlegen. Wenn Sie den Apache HTTP-Server verwenden, aktualisieren Sie Ihren HTTPS VirtualHost mit dieser Anweisung:

RequestHeader set X-Forwarded-Proto "https"

III. Aktualisieren Sie die Kopfzeilen-Konfiguration:

  1. Gehen Sie zu http://host:port/system/console/configMgr/org.apache.felix.http.sslfilter.SslFilter und melden Sie sich als Administrator an.

  2. Setzen Sie die SSL-Weiterleitungs-Kopfzeile auf X-Forwarded-Proto.

  3. Setzen Sie den SSL-Weiterleitungswert auf HTTPS.

  4. Klicken Sie auf Speichern.

Hinweis:

Es gibt keinen Standard für Rückwärts-Proxy-Kopfzeilen, die dem Backend mitteilen, welches Protokoll verwendet wird. Aber hier sind einige, die bekannt sind:

  • Amazon ELB (Elastic Load Balancer) verwendet die „X-Forwarded-Proto: HTTPS“ Kopfzeile.
  • Amazon Cloudfront CDN verwendet die „X-Cloudfront-Proto: HTTPS“ Kopfzeile.

IV. Aktualisieren Sie die Jetty OSGi-Konfiguration (AEM 6.3 und höhere Versionen).

Ab AEM 6.3 ist eine zusätzliche Konfiguration erforderlich:

  1. Melden Sie an sich unter http://aem-host:port/system/console/configMgr/org.apache.felix.http.

  2. Aktivieren Sie die Einstellung Proxy/Lastverteiler-Verbindung aktivieren und speichern Sie sie.

  3. Suchen Sie nach dem Sling-Authentifizierungs-Service und öffnen Sie die Konfiguration.

  4. Deaktivieren Sie Anonymen Zugriff erlauben.

  5. Klicken Sie auf Speichern.

Sie finden weitere Informationen zu diesem Thema in dem Lösungsartikel.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie