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:
Erstellen oder rufen Sie private Schlüssel und Zertifikate für die Autoren- und Veröffentlichungsinstanz ab.
Installieren Sie die Schlüssel und Zertifikate auf der Autoren- und Veröffentlichungsinstanz:
Konfigurieren Sie den Jetty-basierten HTTP-Dienst auf der Veröffentlichungsinstanz.
Konfigurieren Sie die Transport- und SSL-Eigenschaften des Replikationsagenten.
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.
Sie benötigen einen privaten Schlüssel und ein öffentliches Zertifikat für die Autoren- und Veröffentlichungsinstanz:
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:
Generieren Sie ein privat/öffentliches Schlüsselpaar in einem KeyStore.
Erstellen oder rufen Sie das Zertifikat ab:
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.
Ö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 |
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 |
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.
Ö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 |
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.
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 |
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 Sie Folgendes auf der Autoreninstanz:
Um folgende Schritte ausführen, müssen Sie als Administrator der Autoreninstanz angemeldet sein.
Öffnen Sie die Seite „Benutzerverwaltung“ für die Autoreninstanz. (http://localhost:4502/libs/granite/security/content/useradmin.html)
Klicken oder tippen Sie auf Ihren Benutzernamen, um die Eigenschaften Ihres Benutzerkontos zu öffnen.
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“.
Klicken Sie im Bereich mit den Kontoeinstellungen auf „KeyStore verwalten“.
Klicken Sie auf „Privaten Schlüssel aus KeyStore-Datei hinzufügen“.
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“.
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“.
Schließen Sie das Dialogfeld „KeyStore-Verwaltung“.
Öffnen Sie die Seite „Benutzerverwaltung“ für die Autoreninstanz. (http://localhost:4502/libs/granite/security/content/useradmin.html)
Klicken oder tippen Sie auf Ihren Benutzernamen, um die Eigenschaften Ihres Benutzerkontos zu öffnen.
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“.
Klicken Sie im Bereich mit den Kontoeinstellungen auf „TrustStore verwalten“.
Klicken Sie auf „Zertifikat aus CER-Datei hinzufügen“.
Deaktivieren Sie die Option „Benutzer Zertifikat zuordnen“. Klicken Sie auf „Zertifikatsdatei auswählen“ und wählen Sie „publish.cer“ aus. Klicken Sie auf „Öffnen“.
Schließen Sie das Dialogfeld „TrustStore-Verwaltung“.
Installieren Sie Folgendes auf der Veröffentlichungsinstanz:
Um die folgenden Schritte auszuführen, müssen Sie als Administrator der Veröffentlichungsinstanz angemeldet sein.
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 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. |
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