Show Menu
TEMAS×

Replicar usando SSL mutuo

Configure AEM para que un agente de replicación de la instancia de creación utilice SSL mutuo (MSSL) para conectarse con la instancia de publicación. Con MSSL, el agente de replicación y el servicio HTTP de la instancia de publicación utilizan certificados para autenticarse entre sí.
La configuración de MSSL para replicación implica realizar los siguientes pasos:
  1. Cree u obtenga claves y certificados privados para las instancias de creación y publicación.
  2. Instale las claves y los certificados en las instancias de creación y publicación:
    • Autor: Clave privada del autor y certificado de publicación.
    • Publicación: Clave privada de Publish y certificado del autor. El certificado está asociado a la cuenta de usuario autenticada con el agente de replicación.
  3. Configure el servicio HTTP basado en Jetty en la instancia de Publish.
  4. Configure las propiedades de transporte y SSL del agente de replicación.
Debe determinar qué cuenta de usuario está realizando la replicación. Al instalar el certificado de autor de confianza en la instancia de publicación, el certificado se asocia a esta cuenta de usuario.

Obtención o creación de credenciales para MSSL

Se requiere una clave privada y un certificado público para las instancias de creación y publicación:
  • Las claves privadas deben estar incluidas en el formato pkcs#12 o JKS.
  • Los certificados deben estar en formato pkcs#12 o JKS. Además, el certificado contenido en formato "CER" también se puede agregar a Granite Truststore.
  • Los certificados pueden ser autofirmados o firmados por una CA reconocida.

Formato JKS

Genere una clave privada y un certificado en formato JKS. La clave privada se almacena en un archivo KeyStore y el certificado en un archivo TrustStore. Utilice Java para crear ambos.
Siga estos pasos con Java keytool para crear la clave privada y las credenciales:
  1. Genere un par de clave pública-privada en KeyStore.
  2. Cree u obtenga el certificado:
    • Autofirmado: Exporte el certificado desde KeyStore.
    • Firmado por CA: Genere una solicitud de certificado y envíela a la CA.
  3. Importe el certificado en un TrustStore.
Utilice el procedimiento siguiente para crear una clave privada y un certificado autofirmado tanto para la instancia de autor como para la de publicación. Utilice valores diferentes para las opciones de comando según corresponda.
  1. Abra una ventana de línea de comandos o un terminal. Para crear el par de clave pública-privada, introduzca el siguiente comando, utilizando los valores de opción de la tabla siguiente:
    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"
    
    
    Opción
    Creación
    Publicación
    -alias
    author
    instancias de publicación
    -keystore
    author.keystore
    publish.keystore
  2. Para exportar el certificado, introduzca el siguiente comando utilizando valores de opción de la tabla siguiente:
    keytool -exportcert -alias alias -file cert_file -storetype jks -keystore keystore -storepass store_password
    
    
    Opción
    Creación
    Publicación
    -alias
    author
    instancias de publicación
    -archivo
    author.cer
    publish.cer
    -keystore
    author.keystore
    publish.keystore

formato pkcs#12

Genere una clave privada y un certificado en formato pkcs#12. Utilice openSSL para generarlos. Utilice el procedimiento siguiente para generar una clave privada y una solicitud de certificado. Para obtener el certificado, firme la solicitud con su clave privada (certificado con firma automática) o envíe la solicitud a una CA. A continuación, genere el archivo pkcs#12 que contiene la clave privada y el certificado.
  1. Abra una ventana de línea de comandos o un terminal. Para crear la clave privada, introduzca el siguiente comando, utilizando los valores de opción de la tabla siguiente:
    openssl genrsa -out keyname.key 2048
    
    
    Opción
    Creación
    Publicación
    -out
    author.key
    publish.key
  2. Para generar una solicitud de certificado, introduzca el siguiente comando, utilizando los valores de opción de la tabla siguiente:
    openssl req -new -key keyname.key -out key_request.csr
    
    
    Opción
    Creación
    Publicación
    -key
    author.key
    publish.key
    -out
    author_request.csr
    publish_request.csr
    Firme la solicitud de certificado o envíe la solicitud a una entidad emisora de certificados.
  3. Para firmar la solicitud de certificado, introduzca el siguiente comando, utilizando los valores de opción de la tabla siguiente:
    openssl x509 -req -days 3650 -in key_request.csr -signkey keyname.key -out certificate.cer
    
    
    Opción
    Creación
    Publicación
    -signkey
    author.key
    publish.key
    -en
    author_request.csr
    publish_request.csr
    -out
    author.cer
    publish.cer
  4. Para agregar la clave privada y el certificado firmado a un archivo pkcs#12, introduzca el siguiente comando, utilizando valores de opción de la tabla siguiente:
    openssl pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in certificate.cer -inkey keyname.key -out pkcs12_archive.pfx -name "alias"
    
    
    Opción
    Creación
    Publicación
    -inkey
    author.key
    publish.key
    -out
    author.pfx
    publish.pfx
    -en
    author.cer
    publish.cer
    -name
    author
    instancias de publicación

Instalar la clave privada y TrustStore en el autor

Instale los siguientes elementos en la instancia de creación:
  • Clave privada de la instancia de creación.
  • El certificado de la instancia de publicación.
Para realizar el siguiente procedimiento, debe haber iniciado sesión como administrador de la instancia de creación.

Instalación de la clave privada del autor

  1. Abra la página Administración de usuarios de la instancia de creación. ( http://localhost:4502/libs/granite/security/content/useradmin.html )
  2. Para abrir las propiedades de su cuenta de usuario, toque o haga clic en su nombre de usuario.
  3. Si el vínculo Crear almacén de claves aparece en el área Configuración de la cuenta, haga clic en el vínculo. Configure una contraseña y haga clic en Aceptar.
  4. En el área Configuración de la cuenta, haga clic en Administrar almacén de claves.
  5. Haga Clic En Agregar Clave Privada Del Archivo De Almacenamiento De Clave.
  6. Haga clic en Seleccionar archivo de almacén de claves, busque y seleccione el archivo author.keystore o author.pfx si utiliza pkcs#12 y, a continuación, haga clic en Abrir.
  7. Introduzca un alias y la contraseña para el almacén de claves. Introduzca el alias y la contraseña de la clave privada y, a continuación, haga clic en Enviar.
  8. Cierre el cuadro de diálogo Administración de KeyStore.

Instalación del certificado de publicación

  1. Abra la página Administración de usuarios de la instancia de creación. ( http://localhost:4502/libs/granite/security/content/useradmin.html )
  2. Para abrir las propiedades de su cuenta de usuario, toque o haga clic en su nombre de usuario.
  3. Si el vínculo Crear almacén de confianza aparece en el área Configuración de la cuenta, haga clic en el vínculo, cree una contraseña para el almacén de confianza y haga clic en Aceptar.
  4. En el área Configuración de la cuenta, haga clic en Administrar TrustStore.
  5. Haga clic en Agregar certificado desde archivo CER.
  6. Desactive la opción Asignar certificado a usuario. Haga clic en Seleccionar archivo de certificado, seleccione publish.cer y haga clic en Abrir.
  7. Cierre el cuadro de diálogo Administración de almacén de confianza.

Instalar clave privada y TrustStore en la publicación

Instale los siguientes elementos en la instancia de publicación:
  • Clave privada de la instancia de publicación.
  • El certificado de la instancia de autor. Asocie el certificado al usuario que se utiliza para ejecutar solicitudes de replicación.
Para realizar el siguiente procedimiento, debe haber iniciado sesión como administrador de la instancia de publicación.

Instalación de la clave privada de publicación

  1. Abra la página Administración de usuarios de la instancia de publicación. ( http://localhost:4503/libs/granite/security/content/useradmin.html )
  2. Para abrir las propiedades de su cuenta de usuario, toque o haga clic en su nombre de usuario.
  3. Si el vínculo Crear almacén de claves aparece en el área Configuración de la cuenta, haga clic en el vínculo. Configure una contraseña y haga clic en Aceptar.
  4. En el área Configuración de la cuenta, haga clic en Administrar almacén de claves.
  5. Haga Clic En Agregar Clave Privada Del Archivo De Almacenamiento De Clave.
  6. Haga clic en Seleccionar archivo de almacén de claves, busque y seleccione el archivo publish.keystore o publish.pfx si utiliza pkcs#12 y, a continuación, haga clic en Abrir.
  7. Introduzca un alias y la contraseña para el almacén de claves. Introduzca el alias y la contraseña de la clave privada y, a continuación, haga clic en Enviar.
  8. Cierre el cuadro de diálogo Administración de KeyStore.

Instalación del certificado de autor

  1. Abra la página Administración de usuarios de la instancia de publicación. ( http://localhost:4503/libs/granite/security/content/useradmin.html )
  2. Busque la cuenta de usuario que utiliza para ejecutar solicitudes de replicación y toque o haga clic en el nombre de usuario.
  3. Si el vínculo Crear almacén de confianza aparece en el área Configuración de la cuenta, haga clic en el vínculo, cree una contraseña para el almacén de confianza y haga clic en Aceptar.
  4. En el área Configuración de la cuenta, haga clic en Administrar TrustStore.
  5. Haga clic en Agregar certificado desde archivo CER.
  6. Asegúrese de que la opción Asignar certificado a usuario está seleccionada. Haga clic en Seleccionar archivo de certificado, seleccione author.cer y haga clic en Abrir.
  7. Haga clic en Enviar y, a continuación, cierre el cuadro de diálogo Administración de TrustStore.

Configuración del servicio HTTP al publicar

Configure las propiedades del servicio HTTP Apache Felix Jetty Based en la instancia de publicación para que utilice HTTPS al acceder a Granite Keystore. El PID del servicio es org.apache.felix.http .
En la tabla siguiente se enumeran las propiedades de OSGi que debe configurar si utiliza la consola web.
Nombre de propiedad en la consola web
Nombre de propiedad OSGi
Value
Habilitar HTTPS
org.apache.felix.https.enable
verdadero
Habilitar HTTPS para utilizar Granite KeyStore
org.apache.felix.https.use.granite.keystore
verdadero
Puerto HTTPS
org.osgi.service.http.port.secure
8443 (u otro puerto deseado)
Certificado de cliente
org.apache.felix.https.clientcertificate
"Se busca certificado de cliente"

Configurar el agente de replicación en el autor

Configure el agente de replicación en la instancia de autor para que utilice el protocolo HTTPS al conectarse a la instancia de publicación. Para obtener información completa sobre la configuración de los agentes de replicación, consulte Configuración de los agentes de replicación.
Para habilitar MSSL, configure las propiedades en la ficha Transporte según la tabla siguiente:
Propiedad Value
URI
https://server_name:SSL_port/bin/receive?sling:authRequestLogin=1
Por ejemplo:
http://localhost:8443/bin/receive?sling:authRequestLogin=1
Usuario Sin valor
Contraseña Sin valor
SSL Autenticación de cliente
Después de configurar el agente de replicación, pruebe la conexión para determinar si MSSL está configurado correctamente.
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