Replicazione con SSL reciproco

Configura AEM in modo che un agente di replica nell’istanza di authoring utilizzi SSL reciproco (MSSL) per connettersi all’istanza di pubblicazione. Utilizzando MSSL, l’agente di replica e il servizio HTTP sull’istanza di pubblicazione utilizzano i certificati per autenticarsi a vicenda.

La configurazione di MSSL per la replica comporta l’esecuzione dei seguenti passaggi:

  1. Crea o ottieni chiavi private e certificati per le istanze di authoring e pubblicazione.

  2. Installa le chiavi e i certificati sulle istanze di authoring e pubblicazione:

    • Autore: Chiave privata dell’autore e certificato di pubblicazione.
    • Pubblicazione: Chiave privata di Publish e certificato di Autore. Il certificato è associato all’account utente autenticato con l’agente di replica.
  3. Configura il servizio HTTP Jetty-Based sull'istanza Publish.

  4. Configura le proprietà di trasporto e SSL dell’agente di replica.

chlimage_1-64

È necessario determinare quale account utente sta eseguendo la replica. Quando installi il certificato di authoring affidabile nell’istanza di pubblicazione, il certificato è associato a questo account utente.

Ottenimento o creazione di credenziali per MSSL

È necessaria una chiave privata e un certificato pubblico per le istanze di authoring 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 il certificato contenuto nel formato "CER".
  • I certificati possono essere autofirmati o firmati da una CA riconosciuta.

Formato JKS

Genera una chiave privata e un certificato in formato JKS. La chiave privata viene memorizzata in un file KeyStore e il certificato viene memorizzato in un file TrustStore. Utilizza Java keytool per creare entrambi.

Esegui i seguenti passaggi utilizzando Java keytool per creare la chiave privata e la credenziale:

  1. Generare una coppia di chiavi pubblica-privata in un KeyStore.

  2. Crea o ottieni il certificato:

    • Autoscritto: Esporta il certificato dal KeyStore.
    • Firma CA: Generare una richiesta di certificato e inviarla alla CA.
  3. Importa il certificato in un TrustStore.

Segui la procedura seguente per creare una chiave privata e un certificato autofirmato sia per le istanze di authoring che per quelle di pubblicazione. Utilizzare valori diversi per le opzioni di comando di conseguenza.

  1. Aprire una finestra o un terminale della riga di comando. Per creare la coppia di chiavi privata-pubblica, immettere 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
  2. Per esportare il certificato, immetti 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 autore pubblicazione
    -file author.cer publish.cer
    -keystore author.keystore publish.keystore

pkcs#12 Formato

Genera una chiave privata e un certificato in formato pkcs#12. Utilizza openSSL per generarli. Segui la procedura seguente per generare una chiave privata e una richiesta di certificato. Per ottenere il certificato, firma la richiesta con la tua chiave privata (certificato autofirmato) o invia la richiesta a una CA. Quindi, genera l’archivio pkcs#12 che contiene la chiave privata e il certificato.

  1. Aprire una finestra o un terminale della riga di comando. Per creare la chiave privata, immetti 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
  2. Per generare una richiesta di certificato, immetti 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

    Firma la richiesta del certificato o invia la richiesta a una CA.

  3. Per firmare la richiesta di certificato, immetti 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
  4. Per aggiungere la chiave privata e il certificato firmato a un file pkcs#12, immetti 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 autore pubblicazione

Installa la chiave privata e TrustStore sull'autore

Installa i seguenti elementi nell'istanza di authoring:

  • Chiave privata dell’istanza di authoring.
  • Il certificato dell'istanza di pubblicazione.

Per eseguire la seguente procedura, devi aver effettuato l’accesso come amministratore dell’istanza di authoring.

Installa la chiave privata dell'autore

  1. Apri la pagina Gestione utente per l’istanza di authoring. (http://localhost:4502/libs/granite/security/content/useradmin.html)

  2. Per aprire le proprietà dell’account utente, tocca o fai clic sul nome utente.

  3. Se nell'area Impostazioni account viene visualizzato il collegamento Crea KeyStore , fai clic sul collegamento. Configura una password e fai clic su OK.

  4. Nell'area Impostazioni account, fai clic su Gestisci archivio chiavi.

    chlimage_1-65

  5. Fai Clic Su Aggiungi Chiave Privata Dal File Dell'Archivio Chiave.

    chlimage_1-66

  6. Fai clic su Seleziona file archivio chiavi, quindi cerca e seleziona il file author.keystore o il file author.pfx se utilizzi pkcs#12, quindi fai clic su Apri.

  7. Immetti un alias e la password per l'archivio chiavi. Immettere l'alias e la password della chiave privata, quindi fare clic su Invia.

  8. Chiudere la finestra di dialogo KeyStore Management.

    chlimage_1-67

Installa il certificato di pubblicazione

  1. Apri la pagina Gestione utente per l’istanza di authoring. (http://localhost:4502/libs/granite/security/content/useradmin.html)

  2. Per aprire le proprietà dell’account utente, tocca o fai clic sul nome utente.

  3. Se nell'area Impostazioni account viene visualizzato il collegamento Crea TrustStore, fare clic sul collegamento, creare una password per il TrustStore e fare clic su OK.

  4. Nell'area Impostazioni account fare clic su Gestisci TrustStore.

  5. Fare clic su Aggiungi certificato da file CER.

    chlimage_1-68

  6. Deseleziona l’opzione Mappa certificato a utente . Fai clic su Seleziona file certificato, seleziona publish.cer e fai clic su Apri.

  7. Chiudere la finestra di dialogo Gestione TrustStore.

    chlimage_1-69

Installa Private Key e TrustStore su Publish

Installa i seguenti elementi nell'istanza di pubblicazione:

  • Chiave privata dell'istanza di pubblicazione.
  • Il certificato dell’istanza di authoring. Associa il certificato all’utente utilizzato per eseguire le richieste di replica.

Per eseguire la seguente procedura, devi aver effettuato l’accesso come amministratore dell’istanza di pubblicazione.

Installa la chiave privata di pubblicazione

  1. Apri 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, tocca o fai clic sul nome utente.
  3. Se nell'area Impostazioni account viene visualizzato il collegamento Crea KeyStore , fai clic sul collegamento. Configura una password e fai clic su OK.
  4. Nell'area Impostazioni account, fai clic su Gestisci archivio chiavi.
  5. Fai Clic Su Aggiungi Chiave Privata Dal File Dell'Archivio Chiave.
  6. Fai clic su Seleziona file archivio chiavi, quindi cerca e seleziona il file publish.keystore o il file publish.pfx se usi pkcs#12, quindi fai clic su Apri.
  7. Immetti un alias e la password per l'archivio chiavi. Immettere l'alias e la password della chiave privata, quindi fare clic su Invia.
  8. Chiudere la finestra di dialogo KeyStore Management.

Installa il certificato di authoring

  1. Apri la pagina Gestione utente per l’istanza di pubblicazione. (http://localhost:4503/libs/granite/security/content/useradmin.html)
  2. Individua l’account utente utilizzato per eseguire richieste di replica e tocca o fai clic sul nome utente.
  3. Se nell'area Impostazioni account viene visualizzato il collegamento Crea TrustStore, fare clic sul collegamento, creare una password per il TrustStore e fare clic su OK.
  4. Nell'area Impostazioni account fare clic su Gestisci TrustStore.
  5. Fare clic su Aggiungi certificato da file CER.
  6. Assicurati che l’opzione Mappa certificato all’utente sia selezionata. Fai clic su Seleziona file certificato, seleziona author.cer e fai clic su Apri.
  7. Fare clic su Invia, quindi chiudere la finestra di dialogo Gestione TrustStore.

Configurare il servizio HTTP su Pubblica

Configura le proprietà del servizio HTTP Apache Felix Jetty Based 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 da configurare per l’utilizzo della console Web.

Nome proprietà nella 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"

Configura l'agente di replica sull'autore

Configura l’agente di replica nell’istanza di authoring per utilizzare il protocollo HTTPS quando ti connetti all’istanza di pubblicazione. Per informazioni complete sulla configurazione degli agenti di replica, consulta 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

chlimage_1-70

Dopo aver configurato l’agente di replica, verifica 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

In questa pagina

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now