AEM Configure de modo que un agente de replicación en la instancia de autor utilice SSL mutuo (MSSL) para conectarse a 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 mutuamente.
La configuración de MSSL para la replicación implica realizar los siguientes pasos:
Cree o consiga claves y certificados privados para las instancias de autor y publicación.
Instale las claves y los certificados en las instancias de autor y publicación:
Configure el servicio HTTP basado en Jetty en la instancia de publicación.
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.
Necesita una clave privada y un certificado público para las instancias de autor y publicación:
Genere una clave privada y un certificado en formato JKS. La clave privada se almacena en un archivo KeyStore y el certificado se almacena en un archivo TrustStore. Uso Java keytool
para crear ambos.
Siga estos pasos con Java keytool
para crear la clave privada y las credenciales:
Genere un par de claves pública y privada en un almacén de claves.
Cree o consiga el certificado:
Importe el certificado en un almacén de confianza.
Utilice el siguiente procedimiento para crear una clave privada y un certificado autofirmado para las instancias de autor y publicación. Utilice valores diferentes para las opciones de comando según corresponda.
Abra una ventana o terminal de la línea de comandos. Para crear el par de claves pública y 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 | Autor | Publicación |
---|---|---|
-alias | autor | publicación |
-keystore | author.keystore | publish.keystore |
Para exportar el certificado, introduzca el siguiente comando utilizando los valores de opción de la tabla siguiente:
keytool -exportcert -alias alias -file cert_file -storetype jks -keystore keystore -storepass store_password
Opción | Autor | Publicación |
---|---|---|
-alias | autor | publicación |
-file | author.cer | publish.cer |
-keystore | author.keystore | publish.keystore |
Genere una clave privada y un certificado en formato pkcs#12. Uso openSSL para generarlos. Utilice el siguiente procedimiento para generar una clave privada y una solicitud de certificado. Para obtener el certificado, firme la solicitud con la clave privada (certificado autofirmado) o envíela a una CA. A continuación, genere el archivo pkcs#12 que contiene la clave privada y el certificado.
Abra una ventana o terminal de la línea de comandos. 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 | Autor | Publicación |
---|---|---|
-out | author.key | publish.key |
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 | Autor | 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 CA.
Para firmar la solicitud de certificado, introduzca el siguiente comando, utilizando los valores de opción de la siguiente tabla:
openssl x509 -req -days 3650 -in key_request.csr -signkey keyname.key -out certificate.cer
Opción | Autor | Publicación |
---|---|---|
-signkey | author.key | publish.key |
-en | author_request.csr | publish_request.csr |
-out | author.cer | publish.cer |
Para añadir la clave privada y el certificado firmado a un archivo pkcs#12, introduzca el siguiente comando, utilizando los 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 | Autor | Publicación |
---|---|---|
-inkey | author.key | publish.key |
-out | author.pfx | publish.pfx |
-en | author.cer | publish.cer |
-name | autor | publicación |
Instale los siguientes elementos en la instancia de autor:
Para realizar el siguiente procedimiento, debe iniciar sesión como administrador de la instancia de autor.
Abra la página Administración de usuarios de la instancia de autor. (http://localhost:4502/libs/granite/security/content/useradmin.html)
Para abrir las propiedades de la cuenta de usuario, toque o haga clic en el nombre de usuario.
Si el vínculo Crear almacén de claves aparece en el área Configuración de cuenta, haga clic en el vínculo. Configure una contraseña y haga clic en Aceptar.
En el área Configuración de cuenta, haga clic en Administrar almacén de claves.
Haga Clic En Agregar Clave Privada Del Archivo De Almacén De Claves.
Haga clic en Seleccionar archivo de almacén de claves, busque y seleccione el archivo author.keystore o el archivo author.pfx si utiliza pkcs#12 y, a continuación, haga clic en Abrir.
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.
Cierre el cuadro de diálogo Administración de almacén de claves.
Abra la página Administración de usuarios de la instancia de autor. (http://localhost:4502/libs/granite/security/content/useradmin.html)
Para abrir las propiedades de la cuenta de usuario, toque o haga clic en el nombre de usuario.
Si el vínculo Crear almacén de confianza aparece en el área Configuración de cuenta, haga clic en el vínculo, cree una contraseña para el almacén de confianza y haga clic en Aceptar.
En el área Configuración de cuenta, haga clic en Administrar almacén de confianza.
Haga clic en Agregar certificado del archivo CER.
Desactive la opción Asignar certificado al usuario. Haga clic en Seleccionar archivo de certificado, seleccione publish.cer y haga clic en Abrir.
Cierre el cuadro de diálogo Administración de TrustStore.
Instale los siguientes elementos en la instancia de publicación:
Para realizar el siguiente procedimiento, debe iniciar sesión como administrador de la instancia de publicación.
Configure las propiedades del servicio HTTP basado en Apache Felix Jetty en la instancia de publicación para que utilice HTTPS al acceder al repositorio de claves de Granite. El PID del servicio es org.apache.felix.http
.
En la tabla siguiente se enumeran las propiedades OSGi que debe configurar si utiliza la consola web.
Nombre de propiedad en la consola web | Nombre de propiedad OSGi | Valor |
---|---|---|
Habilitar HTTPS | org.apache.felix.https.enable | true |
Habilitar HTTPS para utilizar Granite KeyStore | org.apache.felix.https.use.granite.keystore | true |
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" |
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 agentes de replicación, consulte Configuración de los agentes de replicación.
Para habilitar MSSL, configure las propiedades en la pestaña Transporte según la siguiente tabla:
Propiedad | Valor |
---|---|
URI | https://server_name:SSL_port/bin/receive?sling:authRequestLogin=1 Por ejemplo: http://localhost:8443/bin/receive?sling:authRequestLogin=1 |
Usuario | Sin valor |
Una 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