SSL/TLS de forma predeterminada ssl-tls-by-default

AEM En un esfuerzo por mejorar continuamente la seguridad de los recursos, Adobe ha introducido una función llamada SSL de forma predeterminada. AEM El propósito es fomentar el uso de HTTPS para conectarse a instancias de.

Habilitar SSL/TLS de forma predeterminada enabling-ssl-tls-by-default

AEM Puede comenzar a configurar SSL/TLS de forma predeterminada haciendo clic en el mensaje de la bandeja de entrada correspondiente en la pantalla de inicio de la. Para llegar a la bandeja de entrada, pulse el icono de campana en la esquina superior derecha de la pantalla. A continuación, haga clic en Ver todo. Esto mostrará una lista de todas las alertas ordenadas en una vista de lista.

En la lista, seleccione y abra Configurar HTTPS alerta:

chlimage_1-103

NOTE
Si la variable Configurar HTTPS no está presente en la bandeja de entrada, puede navegar directamente al asistente de HTTPS accediendo a http://serveraddress:serverport/libs/granite/security/content/sslConfig.html?item=configuration%2Fconfiguressl&_charset_=utf-8

Un usuario de servicio llamado ssl-service se ha creado para esta función. Una vez abierta la alerta, se le guiará a través del siguiente asistente de configuración:

  1. En primer lugar, configure las credenciales de la tienda. Estas son las credenciales de la ssl-service almacén de claves del usuario del sistema que contendrá la clave privada y el almacén de confianza para el detector de HTTPS.

    chlimage_1-104

  2. Una vez introducidas las credenciales, haga clic en Siguiente en la esquina superior derecha de la página. A continuación, cargue la clave privada y el certificado asociados para la conexión SSL/TLS.

    chlimage_1-105

    note note
    NOTE
    Para obtener información sobre cómo generar una clave privada y un certificado para utilizarlo con el asistente, consulte este procedimiento más abajo.
  3. Por último, especifique el nombre de host HTTPS y el puerto TCP para el detector de HTTPS.

    screen_shot_2018-07-25at31658pm

Automatizar SSL/TLS de forma predeterminada automating-ssl-tls-by-default

Existen tres formas de automatizar SSL/TLS de forma predeterminada.

Mediante el POST HTTP via-http-post

El primer método implica publicar en el servidor SSLSetup que está utilizando el asistente de configuración:

POST /libs/granite/security/post/sslSetup.html

Puede utilizar la siguiente carga útil en el POST para automatizar la configuración:

------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="keystorePassword"

test
------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="keystorePasswordConfirm"
test
------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="truststorePassword"
test
------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="truststorePasswordConfirm"
test
------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="privatekeyFile"; filename="server.der"
Content-Type: application/x-x509-ca-cert

------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="certificateFile"; filename="server.crt"
Content-Type: application/x-x509-ca-cert

------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="httpsPort"
8443

El servlet, como cualquier servlet del POST sling, responderá con 200 OK o un código de estado HTTP de error. Puede encontrar detalles sobre el estado en el cuerpo del HTML de la respuesta.

A continuación se muestran ejemplos de una respuesta correcta y de un error.

EJEMPLO DE ÉXITO (estado = 200):

<!DOCTYPE html>
<html lang='en'>
<head>
<title>OK</title>
</head>
<body>
<h1>OK</h1>
<dl>
<dt class='foundation-form-response-status-code'>Status</dt>
<dd>200</dd>
<dt class='foundation-form-response-status-message'>Message</dt>
<dd>SSL successfully configured</dd>
<dt class='foundation-form-response-title'>Title</dt>
<dd>OK</dd>
<dt class='foundation-form-response-description'>Description</dt>
<dd>HTTPS has been configured on port 8443. The private key and
certificate were stored in the key store of the user ssl-service.
Take note of the key store password you provided. You need
it for any subsequent updating of the private key or certificate.</dd>
</dl>
<h2>Links</h2>
<ul class='foundation-form-response-links'>
<li><a class='foundation-form-response-redirect' href='/'>Done</a></li>
</ul>
</body>
</html>

EJEMPLO DE ERROR (estado = 500):

<!DOCTYPE html>
<html lang='en'>
<head>
<title>Error</title>
</head>
<body>
<h1>Error</h1>
<dl>
<dt class='foundation-form-response-status-code'>Status</dt>
<dd>500</dd>
<dt class='foundation-form-response-status-message'>Message</dt>
<dd>The provided file is not a valid key, DER format expected</dd>
<dt class='foundation-form-response-title'>Title</dt>
<dd>Error</dd>
</dl>
</body>
</html>

Mediante paquete via-package

También puede automatizar la configuración de SSL/TLS cargando un paquete que ya contenga estos elementos necesarios:

  • El almacén de claves del usuario del servicio SSL. Se encuentra en /home/users/system/security/ssl-service/keystore en el repositorio.
  • El GraniteSslConnectorFactory configuración

Generación de un par de clave privada/certificado para utilizarlo con el asistente generating-a-private-key-certificate-pair-to-use-with-the-wizard

A continuación encontrará un ejemplo para crear un certificado autofirmado en formato DER que puede utilizar el asistente SSL/TLS. Instale OpenSSL basado en el sistema operativo, abra el símbolo del sistema de OpenSSL y cambie el directorio a la carpeta donde desee generar la clave privada o el certificado.

NOTE
El uso de un certificado autofirmado es solo para fines de ejemplo. No usar en producción.
  1. En primer lugar, cree la clave privada:

    code language-shell
    openssl genrsa -aes256 -out localhostprivate.key 4096
    openssl rsa -in localhostprivate.key -out localhostprivate.key
    
  2. A continuación, genere una solicitud de firma de certificado (CSR) con clave privada:

    code language-shell
    openssl req -sha256 -new -key localhostprivate.key -out localhost.csr -subj "/CN=localhost"
    
  3. Genere el certificado SSL/TLS y fírmelo con la clave privada. En este ejemplo, caducará dentro de un año:

    code language-shell
    openssl x509 -req -days 365 -in localhost.csr -signkey localhostprivate.key -out localhost.crt
    

Convierta la clave privada al formato DER. Esto se debe a que el asistente SSL requiere que la clave esté en formato DER:

openssl pkcs8 -topk8 -inform PEM -outform DER -in localhostprivate.key -out localhostprivate.der -nocrypt

Finalmente, cargue el localhostprivate.der como clave privada y localhost.crt como el certificado SSL/TLS en el paso 2 del asistente gráfico SSL/TLS descrito al principio de esta página.

Actualizar la configuración SSL/TLS mediante cURL updating-the-ssl-tls-configuration-via-curl

NOTE
Consulte AEM Uso de cURL con AEM para obtener una lista centralizada de comandos útiles de cURL en la lista de comandos de.

También puede automatizar la configuración SSL/TLS mediante la herramienta cURL. Para ello, publique los parámetros de configuración en esta dirección URL:

https://<serveraddress>:<serverport>/libs/granite/security/post/sslSetup.html

A continuación se muestran los parámetros que puede utilizar para cambiar las distintas configuraciones en el asistente de configuración:

  • -F "keystorePassword=password" - la contraseña del almacén;

  • -F "keystorePasswordConfirm=password" - confirmar la contraseña del almacén de claves;

  • -F "truststorePassword=password" - la contraseña del almacén de confianza;

  • -F "truststorePasswordConfirm=password" - confirmar la contraseña del almacén de confianza;

  • -F "privatekeyFile=@localhostprivate.der" - especificar la clave privada;

  • -F "certificateFile=@localhost.crt" - especificar el certificado;

  • -F "httpsHostname=host.example.com"- especificar el nombre de host;

  • -F "httpsPort=8443" : el puerto en el que funcionará el detector de HTTPS.

NOTE
La forma más rápida de ejecutar cURL para automatizar la configuración SSL/TLS es desde la carpeta donde se encuentran los archivos DER y CRT. También puede especificar la ruta completa en la variable privatekeyFile y argumentos certificateFile.
También debe autenticarse para realizar la actualización, por lo que asegúrese de anexar el comando cURL con la variable -u user:passeword parámetro.
Un comando post de cURL correcto debería tener este aspecto:
curl -u user:password -F "keystorePassword=password" -F "keystorePasswordConfirm=password" -F "truststorePassword=password" -F "truststorePasswordConfirm=password" -F "privatekeyFile=@localhostprivate.der" -F "certificateFile=@localhost.crt" -F "httpsHostname=host.example.com" -F "httpsPort=8443" https://host:port/libs/granite/security/post/sslSetup.html

Varios certificados con cURL multiple-certificates-using-curl

Puede enviar al servlet una cadena de certificados repitiendo el parámetro certificateFile de esta manera:

-F "certificateFile=@root.crt" -F "certificateFile=@localhost.crt"..

Una vez ejecutado el comando, compruebe que todos los certificados hayan llegado al repositorio de claves. Compruebe la Keystore entradas de:
http://localhost:4502/libs/granite/security/content/v2/usereditor.html/home/users/system/security/ssl-service

Activación de una conexión TLS 1.3 enabling-tls-connection

  1. Ir a la consola web

  2. A continuación, vaya a OSGi - Configuración - Adobe Granite SSL Connector Factory

  3. Vaya a la Grupos de cifrado incluidos y agregue las siguientes entradas. Puede confirmar cada adición pulsando el botón "+" a la izquierda del campo, después de añadir cada uno en:

    • TLS_AES_256_GCM_SHA384
    • TLS_AES_128_GCM_SHA256
    • TLS_CHACHA20_POLY1305_SHA256
    • TLS_AES_128_CCM_SHA256
    • TLS_AES_128_CCM_8_SHA256
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2