Konfigurieren Sie AEM so, dass ein Replikationsagent auf der Autoreninstanz gegenseitiges SSL (MSSL) für die Verbindung mit der Veröffentlichungsinstanz verwendet Bei Verwendung von MSSL verwenden der Replikationsagent und der HTTP-Dienst auf der Publishing-Instanz Zertifikate, um sich gegenseitig zu authentifizieren.
Die Konfiguration von MSSL für die Replikation umfasst die folgenden Schritte:
Erstellen oder beziehen Sie private Schlüssel und Zertifikate für die Authoring- und Publishing-Instanzen.
Installieren Sie die Schlüssel und Zertifikate auf der Autoren- und Veröffentlichungsinstanz:
Konfigurieren Sie den Jetty-basierten HTTP-Dienst auf der Publishing-Instanz.
Konfigurieren Sie die Transport- und SSL-Eigenschaften des Replikationsagenten.
Sie müssen bestimmen, welches Benutzerkonto die Replikation durchführt. Bei der Installation des vertrauenswürdigen Autorenzertifikats auf der Publishing-Instanz wird das Zertifikat mit diesem Benutzerkonto verknüpft.
Sie benötigen einen privaten Schlüssel und ein öffentliches Zertifikat für die Authoring- und Publishing-Instanz:
Generieren Sie einen privaten Schlüssel und ein Zertifikat im JKS-Format. Der private Schlüssel wird in einer KeyStore-Datei gespeichert, und das Zertifikat wird 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 öffentlich-privates Schlüsselpaar in einem KeyStore.
Erstellen oder beziehen Sie das Zertifikat:
Importieren Sie das Zertifikat in einen TrustStore.
Führen Sie die folgenden Schritte aus, um einen privaten Schlüssel und ein selbst signiertes Zertifikat für die Authoring- und Publishing-Instanz zu erstellen. Verwenden Sie entsprechend unterschiedliche Werte für die Befehlsoptionen.
Öffnen Sie eine Befehlszeile oder ein Terminal. Um das Schlüsselpaar aus öffentlich-privaten Schlüssel zu erstellen, geben Sie den folgenden Befehl ein und verwenden die Optionswerte aus der folgenden Tabelle:
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 sie zu generieren. Führen Sie die folgenden Schritte aus, um einen privaten Schlüssel und eine Zertifikatanforderung zu generieren. Um das Zertifikat zu erhalten, signieren Sie die Anforderung entweder mit Ihrem privaten Schlüssel (selbstsigniertes Zertifikat) oder senden Sie die Anforderung an eine Zertifizierungsstelle. Erstellen Sie dann 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 entweder die Zertifikatanforderung oder senden Sie die Anforderung an eine 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 die folgenden Elemente auf der Authoring-Instanz:
Um das folgende Verfahren durchzuführen, müssen Sie als Admin der Authoring-Instanz angemeldet sein.
Öffnen Sie die Benutzerverwaltungs-Seite für die Authoring-Instanz. (http://localhost:4502/libs/granite/security/content/useradmin.html)
Um die Eigenschaften Ihres Benutzerkontos zu öffnen, klicken oder tippen Sie auf Ihren Benutzernamen.
Wenn der Link „KeyStore erstellen“ im Bereich Kontoeinstellungen angezeigt wird, klicken Sie auf ihn. Konfigurieren Sie ein Kennwort und klicken Sie auf „OK“.
Klicken Sie im Bereich „Kontoeinstellungen“ auf „Keystore verwalten“.
Klicken Sie auf „Privaten Schlüssel aus KeyStore-Datei hinzufügen“.
Klicken Sie auf „Key Store-Datei auswählen“, suchen Sie die Datei „author.keystore“ oder die Datei „author.pfx“, wenn Sie PKCS#12 verwenden, und wählen Sie sie aus. Klicken Sie dann 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 und klicken Sie auf „Senden“.
Schließen Sie das Dialogfeld „KeyStore-Verwaltung“.
Öffnen Sie die Benutzerverwaltungs-Seite für die Authoring-Instanz. (http://localhost:4502/libs/granite/security/content/useradmin.html)
Um die Eigenschaften Ihres Benutzerkontos zu öffnen, klicken oder tippen Sie auf Ihren Benutzernamen.
Wenn der Link „TrustStore erstellen“ im Bereich „Kontoeinstellungen“ angezeigt wird, klicken Sie auf den Link, erstellen Sie ein Kennwort für den TrustStore und klicken Sie auf „OK“.
Klicken Sie im Bereich „Kontoeinstellungen“ auf „TrustStore verwalten“.
Klicken Sie auf „Zertifikat aus CER-Datei hinzufügen“.
Deaktivieren Sie die Option „Zertifikat dem Benutzer zuordnen“. Klicken Sie auf „Zertifikatdatei auswählen“, wählen Sie „publish.cer“ und klicken Sie auf „Öffnen“.
Schließen Sie das Dialogfeld „TrustStore-Verwaltung“.
Installieren Sie die folgenden Elemente auf der Publishing-Instanz:
Um das folgende Verfahren durchzuführen, müssen Sie als Admin der Publishing-Instanz angemeldet sein.
Konfigurieren Sie die Eigenschaften des Apache Felix Jetty-basierten HTTP-Dienstes auf der Publishing-Instanz 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. Umfassende Informationen zum Konfigurieren von Replikationsagenten finden Sie unter Konfigurieren Ihrer 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