Show Menu
ARGOMENTI×

Replica mediante SSL reciproco

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:
  1. Create o ottenete chiavi e certificati privati per le istanze di creazione e pubblicazione.
  2. Installate le chiavi e i certificati nelle istanze di creazione e pubblicazione:
    • Autore: Chiave privata dell'autore e certificato di pubblicazione.
    • Pubblica: Chiave privata di Publish e certificato di Autore. Il certificato è associato all'account utente autenticato con l'agente di replica.
  3. Configurare il servizio HTTP basato su Jetty sull’istanza Pubblica.
  4. 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.

Ottenimento o creazione di credenziali per MSSL

È necessario disporre di una chiave privata e di un certificato pubblico per le istanze di creazione e pubblicazione:
  • Le chiavi private devono essere contenute nel formato pkcs#12 o JKS.
  • I certificati devono essere contenuti nel formato pkcs#12 o JKS. È inoltre possibile aggiungere al Granite Truststore anche certificati contenuti in formato "CER".
  • I certificati possono essere autofirmati o firmati da una CA riconosciuta.

Formato JKS

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 per creare entrambi.
Per creare la chiave privata e la credenziale, effettuate le seguenti operazioni tramite Java: keytool
  1. Generare una coppia di chiavi pubblica-privata in un KeyStore.
  2. Create o ottenete il certificato:
    • Autofirmato: Esportate il certificato da KeyStore.
    • Firma CA: Generare una richiesta di certificato e inviarla alla CA.
  3. 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.
  1. 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
    Authoring
    Pubblicazione
    -alias
    author
    pubblicazione
    -keystore
    author.keystore
    publish.keystore
  2. 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
    Authoring
    Pubblicazione
    -alias
    author
    pubblicazione
    -file
    author.cer
    publish.cer
    -keystore
    author.keystore
    publish.keystore

pkcs#12 Format

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.
  1. 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
    Authoring
    Pubblicazione
    -out
    author.key
    publish.key
  2. 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
    Authoring
    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.
  3. 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
    Authoring
    Pubblicazione
    -signkey
    author.key
    publish.key
    -in
    author_request.csr
    publish_request.csr
    -out
    author.cer
    publish.cer
  4. 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
    Authoring
    Pubblicazione
    -inkey
    author.key
    publish.key
    -out
    author.pfx
    publish.pfx
    -in
    author.cer
    publish.cer
    -nome
    author
    pubblicazione

Installare la chiave privata e TrustStore sull'autore

Installate i seguenti elementi nell’istanza di creazione:
  • Chiave privata dell’istanza di creazione.
  • Il certificato dell’istanza di pubblicazione.
Per eseguire la procedura seguente, è necessario aver effettuato l’accesso come amministratore dell’istanza di creazione.

Installare la chiave privata Author

  1. Aprite la pagina Gestione utente per l’istanza di creazione. ( http://localhost:4502/libs/granite/security/content/useradmin.html )
  2. Per aprire le proprietà dell’account utente, toccate o fate clic sul nome utente.
  3. Se nell'area Impostazioni account viene visualizzato il collegamento Create KeyStore, fate clic sul collegamento. Configurare una password e fare clic su OK.
  4. Nell'area Impostazioni account, fate clic su Gestisci archivio chiavi.
  5. Fare Clic Su Aggiungi Chiave Privata Dal File Dell'Archivio Chiave.
  6. 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.
  7. Immettere un alias e la password per l'archivio chiavi. Immettete l’alias e la password della chiave privata, quindi fate clic su Invia.
  8. Chiudere la finestra di dialogo Gestione archivio chiavi.

Installare il certificato di pubblicazione

  1. Aprite la pagina Gestione utente per l’istanza di creazione. ( http://localhost:4502/libs/granite/security/content/useradmin.html )
  2. Per aprire le proprietà dell’account utente, toccate o fate clic sul nome utente.
  3. 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.
  4. Nell'area Impostazioni account, fate clic su Gestisci TrustStore.
  5. Fare clic su Aggiungi certificato da file CER.
  6. Deselezionate l’opzione Mappa certificato su utente. Fate clic su Seleziona file certificato, selezionate publish.cer e fate clic su Apri.
  7. Chiudere la finestra di dialogo Gestione TrustStore.

Installa chiave privata e TrustStore su Pubblica

Installate i seguenti elementi nell’istanza di pubblicazione:
  • La chiave privata dell’istanza di pubblicazione.
  • Il certificato dell’istanza di creazione. Associate il certificato all'utente utilizzato per eseguire le richieste di replica.
Per eseguire la procedura seguente, è necessario aver eseguito l’accesso come amministratore dell’istanza di pubblicazione.

Installare la chiave privata Pubblica

  1. Aprite la pagina Gestione utente per l’istanza di pubblicazione. ( http://localhost:4503/libs/granite/security/content/useradmin.html )
  2. Per aprire le proprietà dell’account utente, toccate o fate clic sul nome utente.
  3. Se nell'area Impostazioni account viene visualizzato il collegamento Create KeyStore, fate clic sul collegamento. Configurare una password e fare clic su OK.
  4. Nell'area Impostazioni account, fate clic su Gestisci archivio chiavi.
  5. Fare Clic Su Aggiungi Chiave Privata Dal File Dell'Archivio Chiave.
  6. Fate clic su Seleziona file archivio chiavi, quindi individuate e selezionate il file publish.keystore o il file publish.pfx se utilizzate pkcs#12, quindi fate clic su Apri.
  7. Immettere un alias e la password per l'archivio chiavi. Immettete l’alias e la password della chiave privata, quindi fate clic su Invia.
  8. Chiudere la finestra di dialogo Gestione archivio chiavi.

Installare il certificato di authoring

  1. Aprite la pagina Gestione utente per l’istanza di pubblicazione. ( http://localhost:4503/libs/granite/security/content/useradmin.html )
  2. Individuate l'account utente utilizzato per eseguire le richieste di replica, quindi toccate o fate clic sul nome utente.
  3. 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.
  4. Nell'area Impostazioni account, fate clic su Gestisci TrustStore.
  5. Fare clic su Aggiungi certificato da file CER.
  6. Accertatevi che l'opzione Mappa certificato all'utente sia selezionata. Fate clic su Seleziona file certificato, selezionate author.cer, quindi fate clic su Apri.
  7. Fare clic su Invia, quindi chiudere la finestra di dialogo Gestione TrustStore.

Configurare il servizio HTTP su Pubblica

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"

Configurare l'agente di replica sull'autore

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, consultate 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