Show Menu
TEMAS×

Uso de SSL con Dispatcher

Utilice conexiones SSL entre Dispatcher y el equipo de procesamiento:
Las operaciones relacionadas con los certificados SSL están enlazadas a productos de terceros. No están cubiertos por el contrato de mantenimiento y asistencia de Adobe Platinum.

Usar SSL cuando Dispatcher se conecte a AEM

Configure Dispatcher para que se comunique con la instancia de procesamiento de AEM o CQ mediante conexiones SSL.
Antes de configurar Dispatcher, configure AEM o CQ para utilizar SSL:

Configuración de Dispatcher para Utilizar SSL

Para configurar Dispatcher para que se conecte con AEM o CQ a través de SSL, el archivo dispatcher.any requiere las siguientes propiedades:
  • Host virtual que gestiona solicitudes HTTPS.
  • La renders sección del host virtual incluye un elemento que identifica el nombre de host y el puerto de la instancia de CQ o AEM que utiliza HTTPS.
  • El renders elemento incluye una propiedad denominada secure de value 1 .
Nota: Cree otro host virtual para gestionar solicitudes HTTP si es necesario.
El siguiente ejemplo de archivo dispatcher.any muestra los valores de propiedad para la conexión mediante HTTPS a una instancia de CQ que se ejecuta en un host localhost y puerto 8443 :
/farms
{
   /secure
   { 
      /virtualhosts
      {
         # select this farm for all incoming HTTPS requestss
         "https://*"
      }
      /renders
      {
      /0001
         {
            # hostname or IP of the render
            /hostname "localhost"
            # port of the render
            /port "8443"
            # connect via HTTPS
            /secure "1"
         }
      }
     # the rest of the properties are omitted
   }

   /non-secure
   { 
      /virtualhosts
      {
         # select this farm for all incoming HTTP requests
         "https://*"
      }
      /renders
      {
         /0001
      {
         # hostname or IP of the render
         /hostname "localhost"
         # port of the render
         /port "4503"
      }
   }
    # the rest of the properties are omitted
}

Configuración de SSL mutuo entre Dispatcher y AEM

Configure las conexiones entre Dispatcher y el equipo de procesamiento (normalmente una instancia de publicación de AEM o CQ) para utilizar SSL mutuo:
  • Dispatcher se conecta a la instancia de procesamiento mediante SSL.
  • La instancia de procesamiento comprueba la validez del certificado de Dispatcher.
  • Dispatcher comprueba que la CA del certificado de la instancia de procesamiento es de confianza.
  • (Opcional) Dispatcher comprueba que el certificado de la instancia de procesamiento coincide con la dirección del servidor de la instancia de procesamiento.
Para configurar una SSL mutua, necesita certificados firmados por una autoridad de certificación (CA) de confianza. Los certificados con firma automática no son adecuados. Puede actuar como entidad emisora de certificados o utilizar los servicios de una entidad emisora de certificados de terceros para firmar sus certificados. Para configurar una SSL mutua, necesita los siguientes elementos:
  • Certificados firmados para la instancia de procesamiento y Dispatcher
  • El certificado de CA (si actúa como CA)
  • Bibliotecas OpenSSL para generar la CA, los certificados y las solicitudes de certificado.
Realice los siguientes pasos para configurar una SSL mutua:
  1. Instale la versión más reciente de Dispatcher para su plataforma. Utilice un binario Dispatcher que admita SSL (SSL está en el nombre del archivo, como dispatcher-apache2.4-linux-x86-64-ssl10-4.1.7.tar).
  2. Cree u obtenga un certificado firmado por CA para Dispatcher y la instancia de procesamiento.
  3. Cree un almacén de claves que contenga un certificado de procesamiento y configure el servicio HTTP del procesamiento para utilizarlo.
  4. Configure el módulo del servidor web Dispatcher para SSL mutuo.

Creación u obtención de certificados firmados por CA

Cree u obtenga los certificados firmados por CA que autentican la instancia de publicación y Dispatcher.

Creación de la CA

Si actúa como CA, utilice OpenSSL para crear la entidad emisora de certificados que firma los certificados de servidor y cliente. (Debe tener instaladas las bibliotecas OpenSSL). Si utiliza una CA de terceros, no realice este procedimiento.
  1. Abra un terminal y cambie el directorio actual al directorio que contiene el archivo CA.sh, como /usr/local/ssl/misc .
  2. Para crear la CA, introduzca el siguiente comando y, a continuación, proporcione valores cuando se le solicite:
    ./CA.sh -newca
    
    
    Varias propiedades del archivo openssl.cnf controlan el comportamiento del script CA.sh. Debe modificar este archivo según sea necesario antes de crear la CA.

Creación de certificados

Utilice OpenSSL para crear las solicitudes de certificado para enviarlas a la CA de terceros o para firmar con la CA.
Al crear un certificado, OpenSSL utiliza la propiedad Nombre común para identificar al titular del certificado. Para el certificado de la instancia de procesamiento, utilice el nombre de host del equipo de instancia como Nombre común si está configurando Dispatcher para aceptar el certificado solo si coincide con el nombre de host de la instancia de Publish. (See the DispatcherCheckPeerCN property.)
  1. Abra un terminal y cambie el directorio actual al directorio que contiene el archivo CH.sh de las bibliotecas OpenSSL.
  2. Introduzca el siguiente comando y proporcione valores cuando se le solicite. Si es necesario, utilice el nombre de host de la instancia de publicación como Nombre común. El nombre de host es un nombre con resolución DNS para la dirección IP del procesamiento:
    ./CA.sh -newreq
    
    
    Si utiliza una CA de terceros, envíe el archivo newreq.pem a la CA para que lo firme. Si actúa como CA, continúe con el paso 3.
  3. Introduzca el siguiente comando para firmar el certificado mediante el certificado de su CA:
    ./CA.sh -sign
    
    
    En el directorio que contiene los archivos de administración de CA se crean dos archivos denominados newcert.pem y newkey.pem. Son el certificado público y la clave privada del equipo de procesamiento, respectivamente.
  4. Cambie el nombre de newcert.pem a rendercert.pem y cambie el nombre de newkey.pem a renderkey.pem.
  5. Repita los pasos 2 y 3 para crear un nuevo certificado y una nueva clave pública para el módulo Dispatcher. Asegúrese de utilizar un Nombre común específico de la instancia de Dispatcher.
  6. Cambie el nombre de newcert.pem a dispcert.pem y cambie el nombre de newkey.pem a dispkey.pem.

Configuración de SSL en el equipo de procesamiento

Configure SSL en la instancia de procesamiento mediante los archivos rendercert.pem y renderkey.pem.

Conversión del certificado de procesamiento al formato JKS

Utilice el siguiente comando para convertir el certificado de procesamiento, que es un archivo PEM, en un archivo PKCS#12. Incluya también el certificado de la CA que firmó el certificado de procesamiento:
  1. En una ventana de terminal, cambie el directorio actual a la ubicación del certificado de procesamiento y la clave privada.
  2. Introduzca el siguiente comando para convertir el certificado de procesamiento, que es un archivo PEM, en un archivo PKCS#12. Incluya también el certificado de la CA que firmó el certificado de procesamiento:
    openssl pkcs12 -export -in rendercert.pem -inkey renderkey.pem  -certfile demoCA/cacert.pem -out rendercert.p12
    
    
  3. Introduzca el siguiente comando para convertir el archivo PKCS#12 al formato Java KeyStore (JKS):
    keytool -importkeystore -srckeystore servercert.p12 -srcstoretype pkcs12 -destkeystore render.keystore
    
    
  4. Java Keystore se crea con un alias predeterminado. Cambie el alias si lo desea:
    keytool -changealias -alias 1 -destalias jettyhttp -keystore render.keystore
    
    

Adición del certificado de CA al almacén de confianza del procesamiento

Si actúa como entidad emisora de certificados, importe el certificado de CA en un almacén de claves. A continuación, configure el JVM que ejecuta la instancia de procesamiento para que confíe en el almacén de claves.
  1. Utilice un editor de texto para abrir el archivo cacert.pem y quitar todo el texto que precede a la siguiente línea:
    -----BEGIN CERTIFICATE-----
  2. Utilice el siguiente comando para importar el certificado en un almacén de claves:
    keytool -import -keystore cacerts.keystore -alias myca -storepass password -file cacert.pem
    
    
  3. Para configurar el JVM que ejecuta la instancia de procesamiento para que confíe en el almacén de claves, utilice la siguiente propiedad del sistema:
    -Djavax.net.ssl.trustStore=<location of cacerts.keystore>
    
    
    Por ejemplo, si utiliza la secuencia de comandos crx-quickstart/bin/quickstart para iniciar la instancia de publicación, puede modificar la propiedad CQ_JVM_OPTS:
    CQ_JVM_OPTS='-server -Xmx2048m -XX:MaxPermSize=512M -Djavax.net.ssl.trustStore=/usr/lib/cq6.0/publish/ssl/cacerts.keystore'
    
    

Configuración de la instancia de procesamiento

Utilice el certificado de procesamiento con las instrucciones de la sección Habilitar SSL en la instancia de publicación para configurar el servicio HTTP de la instancia de procesamiento para utilizar SSL:

Configuración de SSL para el módulo Dispatcher

Para configurar Dispatcher para que utilice SSL mutuo, prepare el certificado de Dispatcher y, a continuación, configure el módulo del servidor web.

Creación de un certificado de despachante unificado

Combine el certificado de distribuidor y la clave privada no cifrada en un único archivo PEM. Utilice un editor de texto o el cat comando para crear un archivo similar al siguiente ejemplo:
  1. Abra un terminal y cambie el directorio actual a la ubicación del archivo dispkey.pem.
  2. Para descifrar la clave privada, escriba el siguiente comando:
    openssl rsa -in dispkey.pem -out dispkey_unencrypted.pem
    
    
  3. Utilice un editor de texto o el cat comando para combinar la clave privada no cifrada y el certificado en un único archivo similar al siguiente ejemplo:
    -----BEGIN RSA PRIVATE KEY-----
    MIICxjBABgkqhkiG9w0B...
    ...M2HWhDn5ywJsX
    -----END RSA PRIVATE KEY-----
    -----BEGIN CERTIFICATE-----
    MIIC3TCCAk...
    ...roZAs=
    -----END CERTIFICATE-----
    
    

Especificación del certificado que se va a usar para Dispatcher

Agregue las siguientes propiedades a la configuración del módulo Dispatcher (en httpd.conf ):
  • DispatcherCertificateFile :: Ruta al archivo de certificado unificado de Dispatcher que contiene el certificado público y la clave privada no cifrada. Este archivo se utiliza cuando el servidor SSL solicita el certificado de cliente Dispatcher.
  • DispatcherCACertificateFile :: Ruta al archivo de certificado de CA, utilizada si el servidor SSL presenta una CA que no es de confianza para una autoridad raíz.
  • DispatcherCheckPeerCN :: Si se debe habilitar ( On ) o deshabilitar ( Off ) la comprobación de nombres de host para certificados de servidor remoto.
El siguiente código es un ejemplo de configuración:
<IfModule disp_apache2.c>
  DispatcherConfig conf/dispatcher.any
  DispatcherLog    logs/dispatcher.log
  DispatcherLogLevel 3
  DispatcherNoServerHeader 0
  DispatcherDeclineRoot 0
  DispatcherUseProcessedURL 0
  DispatcherPassError 0
  DispatcherCertificateFile disp_unified.pem
  DispatcherCACertificateFile cacert.pem
  DispatcherCheckPeerCN On
</IfModule>