Replikering med ömsesidig SSL replicating-using-mutual-ssl
Konfigurera AEM så att en replikeringsagent på författarinstansen använder gemensam SSL (MSSL) för att ansluta till publiceringsinstansen. Med MSSL använder replikeringsagenten och HTTP-tjänsten på publiceringsinstansen certifikat för att autentisera varandra.
När du konfigurerar MSSL för replikering utför du följande steg:
-
Skapa eller hämta privata nycklar och certifikat för författaren och publiceringsinstanserna.
-
Installera nycklarna och certifikaten på författaren och publicera instanserna:
- Författare: Författarens privata nyckel och Publish certifikat.
- Publicera: Publish privata nyckel och författarens certifikat. Certifikatet är associerat med det användarkonto som autentiseras med replikeringsagenten.
-
Konfigurera den Jetty-baserade HTTP-tjänsten på Publish-instansen.
-
Konfigurera transport- och SSL-egenskaperna för replikeringsagenten.
Avgör vilket användarkonto som utför replikeringen. När du installerar det betrodda författarcertifikatet på publiceringsinstansen kopplas certifikatet till det här användarkontot.
Hämta eller skapa autentiseringsuppgifter för MSSL obtaining-or-creating-credentials-for-mssl
Du behöver en privat nyckel och ett offentligt certifikat för författaren och publiceringsinstanserna:
- Privata nycklar måste finnas i pkcs#12- eller JKS-format.
- Certifikat måste finnas i pkcs#12- eller JKS-format. Certifikatet i CER-format kan också läggas till i Granite Truststore.
- Certifikat kan vara självsignerade eller signerade av en erkänd certifikatutfärdare.
JKS-format jks-format
Generera en privat nyckel och ett certifikat i JKS-format. Den privata nyckeln lagras i en KeyStore-fil och certifikatet lagras i en TrustStore-fil. Använd Java keytool
för att skapa båda.
Utför följande steg med Java keytool
för att skapa den privata nyckeln och autentiseringsuppgifterna:
-
Skapa ett nyckelpar för privat-offentlig nyckel i en KeyStore.
-
Skapa eller hämta certifikatet:
- Självsignerad: Exportera certifikatet från KeyStore.
- Certifikatsignerad: Generera en certifikatbegäran och skicka den till certifikatutfärdaren.
-
Importera certifikatet till en TrustStore.
Använd följande procedur för att skapa en privat nyckel och ett självsignerat certifikat för både författaren och publiceringsinstanserna. Använd olika värden för kommandoalternativen.
-
Öppna ett kommandoradsfönster eller en terminal. Om du vill skapa nyckelparet privat-offentlig anger du följande kommando med alternativvärden från tabellen nedan:
code language-shell 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"
table 0-row-3 1-row-3 2-row-3 Alternativ Författare Publish -alias författare publicera -keystore author.keystore publish.keystore -
Om du vill exportera certifikatet anger du följande kommando med alternativvärden från tabellen nedan:
code language-shell keytool -exportcert -alias alias -file cert_file -storetype jks -keystore keystore -storepass store_password
table 0-row-3 1-row-3 2-row-3 3-row-3 Alternativ Författare Publish -alias författare publicera -file author.cer publish.cer -keystore author.keystore publish.keystore
pkcs#12-format pkcs-format
Generera en privat nyckel och ett certifikat i formatet pkcs#12. Använd openSSL för att generera dem. Använd följande procedur för att skapa en privat nyckel och en certifikatbegäran. Om du vill få certifikatet signerar du begäran med din privata nyckel (självsignerade certifikat) eller skickar begäran till en certifikatutfärdare. Generera sedan arkivet pkcs#12 som innehåller den privata nyckeln och certifikatet.
-
Öppna ett kommandoradsfönster eller en terminal. Om du vill skapa den privata nyckeln anger du följande kommando med alternativvärden från tabellen nedan:
code language-shell openssl genrsa -out keyname.key 2048
table 0-row-3 1-row-3 Alternativ Författare Publish -out author.key publish.key -
Om du vill generera en certifikatbegäran anger du följande kommando med alternativvärden från tabellen nedan:
code language-shell openssl req -new -key keyname.key -out key_request.csr
table 0-row-3 1-row-3 2-row-3 Alternativ Författare Publish -key author.key publish.key -out author_request.csr publish_request.csr Signera certifikatbegäran eller skicka begäran till en CA.
-
Om du vill signera certifikatbegäran anger du följande kommando med alternativvärden från tabellen nedan:
code language-shell openssl x509 -req -days 3650 -in key_request.csr -signkey keyname.key -out certificate.cer
table 0-row-3 1-row-3 2-row-3 3-row-3 Alternativ Författare Publish -signkey author.key publish.key -in author_request.csr publish_request.csr -out author.cer publish.cer -
Om du vill lägga till din privata nyckel och det signerade certifikatet i en pkcs#12-fil anger du följande kommando med alternativvärden från tabellen nedan:
code language-shell openssl pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in certificate.cer -inkey keyname.key -out pkcs12_archive.pfx -name "alias"
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 Alternativ Författare Publish -inkey author.key publish.key -out author.pfx publish.pfx -in author.cer publish.cer -name författare publicera
Installera den privata nyckeln och TrustStore på författaren install-the-private-key-and-truststore-on-author
Installera följande objekt på författarinstansen:
- Den privata nyckeln för författarinstansen.
- Publiceringsinstansens certifikat.
Om du vill utföra följande procedur måste du vara inloggad som administratör för författarinstansen.
Installera den privata nyckeln för författaren install-the-author-private-key
-
Öppna sidan Användarhantering för författarinstansen. (http://localhost:4502/libs/granite/security/content/useradmin.html)
-
Klicka på ditt användarnamn för att öppna egenskaperna för ditt användarkonto.
-
Om länken Skapa KeyStore visas i området Kontoinställningar klickar du på länken. Konfigurera ett lösenord och klicka på OK.
-
Klicka på Hantera nyckelbehållare i området Kontoinställningar.
-
Klicka på Lägg till privat nyckel från nyckelarkivfilen.
-
Klicka på Välj nyckelbehållarfil, bläddra efter och välj filen author.keystore eller filen author.pfx om du använder pkcs#12 och klicka sedan på Öppna.
-
Ange ett alias och lösenordet för nyckelbehållaren. Ange alias och lösenord för den privata nyckeln och klicka sedan på Skicka.
-
Stäng dialogrutan Hantering av nyckelbehållare.
Installera Publish-certifikatet install-the-publish-certificate
-
Öppna sidan Användarhantering för författarinstansen. (http://localhost:4502/libs/granite/security/content/useradmin.html)
-
Klicka på ditt användarnamn för att öppna egenskaperna för ditt användarkonto.
-
Om länken Skapa TrustStore visas i området Kontoinställningar klickar du på länken, skapar ett lösenord för TrustStore och klickar på OK.
-
Klicka på Hantera TrustStore i området Kontoinställningar.
-
Klicka på Lägg till certifikat från CER-fil.
-
Avmarkera alternativet Koppla certifikat till användare. Klicka på Välj certifikatfil, välj publish.cer och klicka på Open.
-
Stäng dialogrutan Hantering av TrustStore.
Installera privat nyckel och TrustStore på Publish install-private-key-and-truststore-on-publish
Installera följande objekt på publiceringsinstansen:
- Den privata nyckeln för publiceringsinstansen.
- Certifikatet för författarinstansen. Associera certifikatet med den användare som används för att köra replikeringsbegäranden.
Om du vill utföra följande procedur måste du vara inloggad som administratör för publiceringsinstansen.
Installera Publish privata nyckel install-the-publish-private-key
- Öppna sidan Användarhantering för publiceringsinstansen. (http://localhost:4503/libs/granite/security/content/useradmin.html)
- Klicka på ditt användarnamn för att öppna egenskaperna för ditt användarkonto.
- Om länken Skapa KeyStore visas i området Kontoinställningar klickar du på länken. Konfigurera ett lösenord och klicka på OK.
- Klicka på Hantera nyckelbehållare i området Kontoinställningar.
- Klicka på Lägg till privat nyckel från nyckelarkivfilen.
- Klicka på Välj nyckelbehållarfil, bläddra efter och välj filen publish.keystore eller filen publish.pfx om du använder pkcs#12 och klicka sedan på Öppna.
- Ange ett alias och lösenordet för nyckelbehållaren. Ange alias och lösenord för den privata nyckeln och klicka sedan på Skicka.
- Stäng dialogrutan Hantering av nyckelbehållare.
Installera författarcertifikatet install-the-author-certificate
- Öppna sidan Användarhantering för publiceringsinstansen. (http://localhost:4503/libs/granite/security/content/useradmin.html)
- Om länken Skapa TrustStore visas i området Global Trust Store klickar du på länken, skapar ett lösenord för TrustStore och klickar på OK.
- Klicka på Hantera TrustStore i området Kontoinställningar.
- Klicka på Lägg till certifikat från CER-fil.
- Kontrollera att alternativet Koppla certifikat till användare är markerat. Klicka på Välj certifikatfil, välj author.cer och klicka på Open.
- Klicka på Skicka och stäng sedan dialogrutan Hantera i TrustStore.
Konfigurera HTTP-tjänsten på Publish configure-the-http-service-on-publish
Konfigurera egenskaperna för Apache Felix Jetty Based HTTP Service på publiceringsinstansen så att HTTPS används vid åtkomst till Granite Keystore. Tjänstens PID är org.apache.felix.http
.
I följande tabell visas de OSGi-egenskaper som du behöver för att konfigurera om du använder webbkonsolen.
Konfigurera replikeringsagenten på författaren configure-the-replication-agent-on-author
Konfigurera replikeringsagenten på författarinstansen så att HTTPS-protokollet används vid anslutning till publiceringsinstansen. Fullständig information om hur du konfigurerar replikeringsagenter finns i Konfigurera dina replikeringsagenter.
Om du vill aktivera MSSL konfigurerar du egenskaperna på fliken Transport enligt följande tabell:
När du har konfigurerat replikeringsagenten testar du anslutningen för att avgöra om MSSL är korrekt konfigurerat.
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