Replizieren mit bidirektionaler SSL-Kommunikation

Konfigurieren Sie AEM so, dass ein Replikationsagent auf der Autoreninstanz gegenseitiges SSL (MSSL) für die Verbindung mit der Veröffentlichungsinstanz verwendet Bei MSSL verwenden der Replikationsagent und der HTTP-Dienst auf der Veröffentlichungsinstanz Zertifikate für die gegenseitige Authentifizierung.

Das Konfigurieren von MSSL für die Replikation beinhaltet folgende Schritte:

  1. Erstellen oder rufen Sie private Schlüssel und Zertifikate für die Autoren- und Veröffentlichungsinstanz ab.

  2. Installieren Sie die Schlüssel und Zertifikate auf der Autoren- und Veröffentlichungsinstanz:

    • Autor: Der private Schlüssel des Autors und das Zertifikat der Veröffentlichung.
    • Veröffentlichung: Der private Schlüssel der Veröffentlichung und das Zertifikat des Autors. Das Zertifikat ist mit dem Benutzerkonto verknüpft, das mit dem Replikationsagenten authentifiziert wird.
  3. Konfigurieren Sie den Jetty-basierten HTTP-Dienst auf der Veröffentlichungsinstanz.

  4. Konfigurieren Sie die Transport- und SSL-Eigenschaften des Replikationsagenten.

chlimage_1-64

Sie müssen festlegen, mit welchem Benutzerkonto die Replikation ausgeführt wird. Wenn Sie das Zertifikat des vertrauenswürdigen Autors auf der Veröffentlichungsinstanz installieren, wird das Zertifikat mit diesem Benutzerkonto verknüpft.

Abrufen oder Erstellen von Anmeldeinformationen für MSSL

Sie benötigen einen privaten Schlüssel und ein öffentliches Zertifikat für die Autoren- und Veröffentlichungsinstanz:

  • Private Schlüssel müssen im PKCS#12- oder JKS-Format vorliegen.
  • Zertifikate müssen im PKCS#12- oder JKS-Format vorliegen. Zertifikate im CER-Format können ebenfalls zu Granite Truststore hinzugefügt werden.
  • Zertifikate können von einer anerkannten Zertifizierungsstelle (Certification Authority, CA) selbst signiert oder signiert werden.

JKS-Format

Erstellen Sie einen privaten Schlüssel und ein Zertifikat im JKS-Format. Der private Schlüssel wird in einer KeyStore-Datei, das Zertifikat in einer TrustStore-Datei gespeichert. Verwenden Sie Java keytool, um beide zu erstellen.

Führen Sie mit dem Java-keytool folgende Schritte aus, um den privaten Schlüssel und die Anmeldedaten zu erstellen:

  1. Generieren Sie ein privat/öffentliches Schlüsselpaar in einem KeyStore.

  2. Erstellen oder rufen Sie das Zertifikat ab:

    • Selbstsigniert: Exportieren Sie das Zertifikat aus dem KeyStore.
    • CA-signiert: Generieren Sie eine Zertifikatanforderung und senden Sie diese an die CA.
  3. Importieren Sie das Zertifikat in einen TrustStore.

Gehen Sie wie folgt vor, um einen privaten Schlüssel und ein selbstsigniertes Zertifikat für die Autoren- und Veröffentlichungsinstanz zu erstellen. Verwenden Sie unterschiedliche Werte für die Befehlsoptionen.

  1. Öffnen Sie eine Befehlszeile oder ein Terminal. Um das privat/öffentliche Schlüsselpaar zu erstellen, geben Sie folgenden Befehl anhand der Optionswerte in der nachfolgenden Tabelle ein:

    keytool -genkeypair -keyalg RSA -validity 3650 -alias alias -keystore keystorename.keystore  -keypass key_password -storepass  store_password -dname "CN=Host Name, OU=Group Name, O=Company Name,L=City Name, S=State, C=Country_ Code"
    
    Option Autor Veröffentlichung
    -alias author publish
    -keystore author.keystore publish.keystore
  2. Um das Zertifikat zu exportieren, geben Sie folgenden Befehl anhand der Optionswerte in der nachfolgenden Tabelle ein:

    keytool -exportcert -alias alias -file cert_file -storetype jks -keystore keystore -storepass store_password
    
    Option Autor Veröffentlichung
    -alias author publish
    -file author.cer publish.cer
    -keystore author.keystore publish.keystore

PKCS#12-Format

Generieren Sie einen privaten Schlüssel und ein Zertifikat im PKCS#12-Format. Verwenden Sie openSSL, um diese zu generieren. Gehen Sie wie folgt vor, um einen privaten Schlüssel und eine Zertifikatanforderung zu generieren. Um das Zertifikat zu erhalten, müssen Sie die Anforderung mit Ihrem privaten Schlüssel (selbstsigniertem Zertifikat) signieren oder die Anforderung an die Zertifizierungsstelle senden. Generieren Sie danach das PKCS#12-Archiv, das den privaten Schlüssel und das Zertifikat enthält.

  1. Öffnen Sie eine Befehlszeile oder ein Terminal. Um den privaten Schlüssel zu erstellen, geben Sie folgenden Befehl anhand der Optionswerte in der nachfolgenden Tabelle ein:

    openssl genrsa -out keyname.key 2048
    
    Option Autor Veröffentlichung
    -out author.key publish.key
  2. Um eine Zertifikatanforderung zu generieren, geben Sie folgenden Befehl anhand der Optionswerte in der nachfolgenden Tabelle ein:

    openssl req -new -key keyname.key -out key_request.csr
    
    Option Autor Veröffentlichung
    -key author.key publish.key
    -out author_request.csr publish_request.csr

    Signieren Sie die Zertifikatanforderung oder senden Sie die Anforderung an die Zertifizierungsstelle.

  3. Um die Zertifikatanforderung zu signieren, geben Sie folgenden Befehl anhand der Optionswerte in der nachfolgenden Tabelle ein:

    openssl x509 -req -days 3650 -in key_request.csr -signkey keyname.key -out certificate.cer
    
    Option Autor Veröffentlichung
    -signkey author.key publish.key
    -in author_request.csr publish_request.csr
    -out author.cer publish.cer
  4. Um den privaten Schlüssel und das signierte Zertifikat einer PKCS#12-Datei hinzuzufügen, geben Sie folgenden Befehl anhand der Optionswerte in der nachfolgenden Tabelle ein:

    openssl pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in certificate.cer -inkey keyname.key -out pkcs12_archive.pfx -name "alias"
    
    Option Autor Veröffentlichung
    -inkey author.key publish.key
    -out author.pfx publish.pfx
    -in author.cer publish.cer
    -name author publish

Installieren von privatem Schlüssel und TrustStore auf der Autoreninstanz

Installieren Sie Folgendes auf der Autoreninstanz:

  • Den privaten Schlüssel der Autoreninstanz.
  • Das Zertifikat der Veröffentlichungsinstanz.

Um folgende Schritte ausführen, müssen Sie als Administrator der Autoreninstanz angemeldet sein.

Installieren des privaten Schlüssels der Autoreninstanz

  1. Öffnen Sie die Seite „Benutzerverwaltung“ für die Autoreninstanz. (http://localhost:4502/libs/granite/security/content/useradmin.html)

  2. Klicken oder tippen Sie auf Ihren Benutzernamen, um die Eigenschaften Ihres Benutzerkontos zu öffnen.

  3. Wenn der Link „KeyStore erstellen“ im Bereich mit den Kontoeinstellungen angezeigt wird, klicken Sie auf diesen Link. Konfigurieren Sie ein Kennwort und klicken Sie auf „OK“.

  4. Klicken Sie im Bereich mit den Kontoeinstellungen auf „KeyStore verwalten“.

    chlimage_1-65

  5. Klicken Sie auf „Privaten Schlüssel aus KeyStore-Datei hinzufügen“.

    chlimage_1-66

  6. Klicken Sie auf „KeyStore-Datei auswählen“. Suchen Sie dann nach der Datei „author.keystore“ (oder nach der Datei „author.pfx“ bei Verwendung von PKCS#12) und wählen Sie diese aus. Klicken Sie auf „Öffnen“.

  7. Geben Sie einen Alias und das Kennwort für den KeyStore ein. Geben Sie den Alias und das Kennwort für den privaten Schlüssel ein. Klicken Sie anschließend auf „Übermitteln“.

  8. Schließen Sie das Dialogfeld „KeyStore-Verwaltung“.

    chlimage_1-67

Installieren des Veröffentlichungszertifikats

  1. Öffnen Sie die Seite „Benutzerverwaltung“ für die Autoreninstanz. (http://localhost:4502/libs/granite/security/content/useradmin.html)

  2. Klicken oder tippen Sie auf Ihren Benutzernamen, um die Eigenschaften Ihres Benutzerkontos zu öffnen.

  3. Wenn der Link „KeyStore erstellen“ im Bereich mit den Kontoeinstellungen angezeigt wird, klicken Sie auf diesen Link. Konfigurieren Sie ein Kennwort für den TrustStore und klicken Sie auf „OK“.

  4. Klicken Sie im Bereich mit den Kontoeinstellungen auf „TrustStore verwalten“.

  5. Klicken Sie auf „Zertifikat aus CER-Datei hinzufügen“.

    chlimage_1-68

  6. Deaktivieren Sie die Option „Benutzer Zertifikat zuordnen“. Klicken Sie auf „Zertifikatsdatei auswählen“ und wählen Sie „publish.cer“ aus. Klicken Sie auf „Öffnen“.

  7. Schließen Sie das Dialogfeld „TrustStore-Verwaltung“.

    chlimage_1-69

Installieren von privatem Schlüssel und TrustStore auf der Veröffentlichungsinstanz

Installieren Sie Folgendes auf der Veröffentlichungsinstanz:

  • Den privaten Schlüssel der Veröffentlichungsinstanz.
  • Das Zertifikat der Autoreninstanz. Verknüpfen Sie das Zertifikat mit dem Benutzer, über den Replikationsanforderungen ausgeführt werden.

Um die folgenden Schritte auszuführen, müssen Sie als Administrator der Veröffentlichungsinstanz angemeldet sein.

Installieren des privaten Schlüssels der Veröffentlichungsinstanz

  1. Öffnen Sie die Seite „Benutzerverwaltung“ für die Veröffentlichungsinstanz. (http://localhost:4503/libs/granite/security/content/useradmin.html)
  2. Klicken oder tippen Sie auf Ihren Benutzernamen, um die Eigenschaften Ihres Benutzerkontos zu öffnen.
  3. Wenn der Link „KeyStore erstellen“ im Bereich mit den Kontoeinstellungen angezeigt wird, klicken Sie auf diesen Link. Konfigurieren Sie ein Kennwort und klicken Sie auf „OK“.
  4. Klicken Sie im Bereich mit den Kontoeinstellungen auf „KeyStore verwalten“.
  5. Klicken Sie auf „Privaten Schlüssel aus Schlüsselspeicherdatei hinzufügen“.
  6. Klicken Sie auf „KeyStore-Datei auswählen“. Suchen Sie dann nach der Datei „publish.keystore“ (oder nach der Datei „publish.pfx“ bei Verwendung von PKCS#12) und wählen Sie diese aus. Klicken Sie dann auf „Öffnen“.
  7. Geben Sie einen Alias und das Kennwort für den KeyStore ein. Geben Sie den Alias und das Kennwort für den privaten Schlüssel ein. Klicken Sie anschließend auf „Übermitteln“.
  8. Schließen Sie das Dialogfeld „KeyStore-Verwaltung“.

Installieren des Autorenzertifikats

  1. Öffnen Sie die Seite „Benutzerverwaltung“ für die Veröffentlichungsinstanz. (http://localhost:4503/libs/granite/security/content/useradmin.html)
  2. Suchen Sie nach dem Benutzerkonto, das zum Ausführen von Replikationsanforderungen verwendet wird, und klicken oder tippen Sie auf den Benutzernahmen.
  3. Wenn der Link „KeyStore erstellen“ im Bereich mit den Kontoeinstellungen angezeigt wird, klicken Sie auf diesen Link. Konfigurieren Sie ein Kennwort für den TrustStore und klicken Sie auf „OK“.
  4. Klicken Sie im Bereich mit den Kontoeinstellungen auf „TrustStore verwalten“.
  5. Klicken Sie auf „Zertifikat aus CER-Datei hinzufügen“.
  6. Stellen Sie sicher, dass die Option „Benutzer Zertifikat zuordnen“ ausgewählt ist. Klicken Sie auf „Zertifikatsdatei auswählen“ und wählen Sie „author.cer“ aus. Klicken Sie auf „Öffnen“.
  7. Klicken Sie auf „Übermitteln“ und schließen Sie dann das Dialogeld „TrustStore-Verwaltung“.

Konfigurieren des HTTP-Dienstes auf der Veröffentlichungsinstanz

Konfigurieren Sie die Eigenschaften des Apache Felix Jetty-basierten HTTP-Dienstes auf der Veröffentlichungsinstanz so, dass beim Zugriff auf Granite KeyStore HTTPS verwendet wird. Die PID des Dienstes ist org.apache.felix.http.

In der folgenden Tabelle sind die OSGi-Eigenschaften aufgeführt, die Sie konfigurieren müssen, wenn Sie die Web-Konsole verwenden.

Eigenschaftsname in der Web-Konsole OSGi-Eigenschaftsname Wert
Aktivieren von HTTPS org.apache.felix.https.enable true
Aktivieren von HTTPS zur Verwendung von Granite KeyStore org.apache.felix.https.use.granite.keystore true
HTTPS-Port org.osgi.service.http.port.secure 8443 (oder anderer gewünschter Port)
Client-Zertifikat org.apache.felix.https.clientcertificate „Client-Zertifikat gewünscht“

Konfigurieren des Replikationsagenten auf der Autoreninstanz

Konfigurieren Sie den Replikationsagenten auf der Autoreninstanz so, dass das HTTPS-Protokoll beim Herstellen einer Verbindung mit der Veröffentlichungsinstanz verwendet wird. Weitere Informationen zum Konfigurieren von Replikationsagenten finden Sie unter Konfigurieren der Replikationsagenten.

Um MSSL zu aktivieren, konfigurieren Sie die Eigenschaften auf der Registerkarte „Transport“ entsprechend der folgenden Tabelle:

Eigenschaft Wert
URI

https://server_name:SSL_port/bin/receive?sling:authRequestLogin=1

Beispiel:

http://localhost:8443/bin/receive?sling:authRequestLogin=1

User Kein Wert
Passwort Kein Wert
SSL Client-Auth.

chlimage_1-70

Wenn Sie den Replikationsagenten konfiguriert haben, testen Sie die Verbindung, um zu überprüfen, ob MSSL richtig konfiguriert ist.

29.08.2014 14:02:46 - Create new HttpClient for Default Agent
29.08.2014 14:02:46 - * HTTP Version: 1.1
29.08.2014 14:02:46 - * Using Client Auth SSL configuration *
29.08.2014 14:02:46 - adding header: Action:Test
29.08.2014 14:02:46 - adding header: Path:/content
29.08.2014 14:02:46 - adding header: Handle:/content
29.08.2014 14:02:46 - deserialize content for delivery
29.08.2014 14:02:46 - No message body: Content ReplicationContent.VOID is empty
29.08.2014 14:02:46 - Sending POST request to http://localhost:8443/bin/receive?sling:authRequestLogin=1
29.08.2014 14:02:46 - sent. Response: 200 OK
29.08.2014 14:02:46 - ------------------------------------------------
29.08.2014 14:02:46 - Sending message to localhost:8443
29.08.2014 14:02:46 - >> POST /bin/receive HTTP/1.0
29.08.2014 14:02:46 - >> Action: Test
29.08.2014 14:02:46 - >> Path: /content
29.08.2014 14:02:46 - >> Handle: /content
29.08.2014 14:02:46 - >> Referer: about:blank
29.08.2014 14:02:46 - >> Content-Length: 0
29.08.2014 14:02:46 - >> Content-Type: application/octet-stream
29.08.2014 14:02:46 - --
29.08.2014 14:02:46 - << HTTP/1.1 200 OK
29.08.2014 14:02:46 - << Connection: Keep-Alive
29.08.2014 14:02:46 - << Server: Day-Servlet-Engine/4.1.64
29.08.2014 14:02:46 - << Content-Type: text/plain;charset=utf-8
29.08.2014 14:02:46 - << Content-Length: 26
29.08.2014 14:02:46 - << Date: Fri, 29 Aug 2014 18:02:46 GMT
29.08.2014 14:02:46 - << Set-Cookie: login-token=3529326c-1500-4888-a4a3-93d299726f28%3ac8be86c6-04bb-4d18-80d6-91278e08d720_98797d969258a669%3acrx.default; Path=/; HttpOnly; Secure
29.08.2014 14:02:46 - << Set-Cookie: cq-authoring-mode=CLASSIC; Path=/; Secure
29.08.2014 14:02:46 - <<
29.08.2014 14:02:46 - << R
29.08.2014 14:02:46 - << eplicationAction TEST ok.
29.08.2014 14:02:46 - Message sent.
29.08.2014 14:02:46 - ------------------------------------------------
29.08.2014 14:02:46 - Replication (TEST) of /content successful.
Replication test succeeded

Auf dieser Seite