Configurate AEM in modo che un agente di replica nell’istanza di creazione utilizzi SSL (MSSL) reciproco per connettersi all’istanza di pubblicazione. Utilizzando MSSL, l’agente di replica e il servizio HTTP nell’istanza di pubblicazione utilizzano i certificati per l’autenticazione reciproca.
La configurazione di MSSL per la replica prevede l'esecuzione dei seguenti passaggi:
Create o ottenete chiavi e certificati privati per le istanze di creazione e pubblicazione.
Installate le chiavi e i certificati nelle istanze di creazione e pubblicazione:
Configurare il servizio HTTP basato su Jetty sull’istanza Pubblica.
Configurare le proprietà di trasporto e SSL dell'agente di replica.
È necessario determinare l'account utente che esegue la replica. Durante l'installazione del certificato di authoring attendibile nell'istanza di pubblicazione, il certificato è associato a questo account utente.
È necessario disporre di una chiave privata e di un certificato pubblico per le istanze di creazione e pubblicazione:
Generate una chiave privata e un certificato in formato JKS. La chiave privata è memorizzata in un file KeyStore e il certificato è memorizzato in un file TrustStore. Utilizzate Java keytool
per creare entrambi.
Per creare la chiave privata e la credenziale, eseguite i seguenti passaggi utilizzando Java keytool
:
Generare una coppia di chiavi pubblica-privata in un KeyStore.
Create o ottenete il certificato:
Importa il certificato in un TrustStore.
Per creare una chiave privata e un certificato autofirmato per entrambe le istanze di creazione e pubblicazione, utilizzate la procedura seguente. Utilizzare valori diversi per le opzioni di comando di conseguenza.
Aprire una finestra della riga di comando o un terminale. Per creare la coppia di chiavi pubblica-privata, immettete il comando seguente, utilizzando i valori delle opzioni della tabella seguente:
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"
Opzione | Autore | Pubblicazione |
---|---|---|
-alias | author | pubblicazione |
-keystore | author.keystore | publish.keystore |
Per esportare il certificato, immettete il comando seguente utilizzando i valori delle opzioni della tabella seguente:
keytool -exportcert -alias alias -file cert_file -storetype jks -keystore keystore -storepass store_password
Opzione | Autore | Pubblicazione |
---|---|---|
-alias | author | pubblicazione |
-file | author.cer | publish.cer |
-keystore | author.keystore | publish.keystore |
Generate una chiave privata e un certificato in formato pkcs#12. Utilizzate openSSL per generarli. Utilizzate la procedura seguente per generare una chiave privata e una richiesta di certificato. Per ottenere il certificato, firmate la richiesta con la vostra chiave privata (certificato autofirmato) o inviate la richiesta a una CA. Quindi, generate l'archivio pkcs#12 che contiene la chiave privata e il certificato.
Aprire una finestra della riga di comando o un terminale. Per creare la chiave privata, immettete il comando seguente, utilizzando i valori delle opzioni della tabella seguente:
openssl genrsa -out keyname.key 2048
Opzione | Autore | Pubblicazione |
---|---|---|
-out | author.key | publish.key |
Per generare una richiesta di certificato, immettete il comando seguente, utilizzando i valori delle opzioni della tabella seguente:
openssl req -new -key keyname.key -out key_request.csr
Opzione | Autore | Pubblicazione |
---|---|---|
-key | author.key | publish.key |
-out | author_request.csr | publish_request.csr |
Firmare la richiesta del certificato o inviare la richiesta a una CA.
Per firmare la richiesta del certificato, immettete il comando seguente, utilizzando i valori delle opzioni della tabella seguente:
openssl x509 -req -days 3650 -in key_request.csr -signkey keyname.key -out certificate.cer
Opzione | Autore | Pubblicazione |
---|---|---|
-signkey | author.key | publish.key |
-in | author_request.csr | publish_request.csr |
-out | author.cer | publish.cer |
Per aggiungere la chiave privata e il certificato firmato a un file pkcs#12, immettete il comando seguente, utilizzando i valori delle opzioni della tabella seguente:
openssl pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in certificate.cer -inkey keyname.key -out pkcs12_archive.pfx -name "alias"
Opzione | Autore | Pubblicazione |
---|---|---|
-inkey | author.key | publish.key |
-out | author.pfx | publish.pfx |
-in | author.cer | publish.cer |
-name | author | pubblicazione |
Installate i seguenti elementi nell’istanza di creazione:
Per eseguire la procedura seguente, è necessario aver effettuato l’accesso come amministratore dell’istanza di creazione.
Aprite la pagina Gestione utente per l’istanza di creazione. (http://localhost:4502/libs/granite/security/content/useradmin.html)
Per aprire le proprietà dell’account utente, toccate o fate clic sul nome utente.
Se nell'area Impostazioni account viene visualizzato il collegamento Create KeyStore, fate clic sul collegamento. Configurare una password e fare clic su OK.
Nell'area Impostazioni account, fate clic su Gestisci archivio chiavi.
Fare Clic Su Aggiungi Chiave Privata Dal File Dell'Archivio Chiave.
Fate clic su Seleziona file archivio chiavi, quindi individuate e selezionate il file author.keystore o il file author.pfx se utilizzate pkcs#12, quindi fate clic su Apri.
Immettere un alias e la password per l'archivio chiavi. Immettete l’alias e la password per la chiave privata, quindi fate clic su Invia.
Chiudere la finestra di dialogo Gestione archivio chiavi.
Aprite la pagina Gestione utente per l’istanza di creazione. (http://localhost:4502/libs/granite/security/content/useradmin.html)
Per aprire le proprietà dell’account utente, toccate o fate clic sul nome utente.
Se nell'area Impostazioni account viene visualizzato il collegamento Create TrustStore, fate clic sul collegamento, create una password per TrustStore e fate clic su OK.
Nell'area Impostazioni account, fate clic su Gestisci TrustStore.
Fare clic su Aggiungi certificato da file CER.
Deselezionate l’opzione Mappa certificato all’utente. Fate clic su Seleziona file certificato, selezionate publish.cer e fate clic su Apri.
Chiudere la finestra di dialogo Gestione TrustStore.
Installate i seguenti elementi nell’istanza di pubblicazione:
Per eseguire la procedura seguente, è necessario aver eseguito l’accesso come amministratore dell’istanza di pubblicazione.
Configurate le proprietà del servizio HTTP Apache Felix Jetty Basato sull’istanza di pubblicazione in modo che utilizzi HTTPS durante l’accesso a Granite Keystore. Il PID del servizio è org.apache.felix.http
.
Nella tabella seguente sono elencate le proprietà OSGi che è necessario configurare se si utilizza la console Web.
Nome proprietà sulla console Web | Nome proprietà OSGi | Valore |
---|---|---|
Abilita HTTPS | org.apache.felix.https.enable | vero |
Abilita HTTPS per utilizzare Granite KeyStore | org.apache.felix.https.use.granite.keystore | vero |
Porta HTTPS | org.osgi.service.http.port.secure | 8443 (o altra porta desiderata) |
Certificato client | org.apache.felix.https.clientcertificate | "Certificato client desiderato" |
Configurate l'agente di replica nell'istanza di creazione in modo che utilizzi il protocollo HTTPS quando ci si connette all'istanza di pubblicazione. Per informazioni complete sulla configurazione degli agenti di replica, vedere Configurazione degli agenti di replica.
Per abilitare MSSL, configura le proprietà nella scheda Trasporto in base alla tabella seguente:
Proprietà | Valore |
---|---|
URI | https://server_name:SSL_port/bin/receive?sling:authRequestLogin=1 Esempio: http://localhost:8443/bin/receive?sling:authRequestLogin=1 |
User | Nessun valore |
Password | Nessun valore |
SSL | Autenticazione client |
Dopo aver configurato l'agente di replica, verificate la connessione per determinare se MSSL è configurato correttamente.
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