Descarga de SSL/TLS de AWS CloudHSM en Linux usando NGINX o Apache con OpenSSL - AWS CloudHSM

Descarga de SSL/TLS de AWS CloudHSM en Linux usando NGINX o Apache con OpenSSL

En este tema, se proporcionan instrucciones paso a paso para configurar la descarga de SSL/TLS con AWS CloudHSM en un servidor web de Linux.

Información general

En Linux, las aplicaciones de servidor web NGINX y Apache HTTP Server se integran con OpenSSL para admitir HTTPS. El motor dinámico de AWS CloudHSM para OpenSSL proporciona una interfaz que permite al software del servidor web utilizar los HSM de un clúster para las descargas criptográficas y el almacenamiento de claves. El motor de OpenSSL es el puente que conecta el servidor web con su clúster de AWS CloudHSM.

Para completar este tutorial, primero debe decidir si va a utilizar el software de servidor web NGINX o Apache en Linux. A continuación, el tutorial le enseña a realizar las tareas siguientes:

  • Instalar el software del servidor web en una instancia de Amazon EC2.

  • Configurar el software del servidor web para que sea compatible con HTTPS mediante el uso de una clave privada almacenada en su clúster de AWS CloudHSM.

  • (Opcional) Uso de Amazon EC2 para crear una segunda instancia de servidor web y Elastic Load Balancing para crear un equilibrador de carga. El uso de un equilibrador de carga puede mejorar el desempeño al distribuir la carga entre varios servidores. También puede proporcionar redundancia y una mayor disponibilidad si uno o más servidores funcionan mal.

Cuando esté listo para empezar, vaya al Paso 1: configurar los requisitos previos.

Paso 1: configurar los requisitos previos

Las diferentes plataformas requieren requisitos previos diferentes. Utilice la siguiente sección de requisitos previos que se ajuste a su plataforma.

Requisitos previos para el SDK 5 de cliente

Si desea configurar un servidor web para la descarga SSL/TLS con SDK 5 de cliente, necesita lo siguiente:

Para configurar una instancia de servidor web de Linux y crear un CU en el HSM
  1. Instalar y configurar el motor dinámico de OpenSSL para AWS CloudHSM. Para obtener más información sobre la instalación del motor dinámico de OpenSSL, consulte Motor dinámico de OpenSSL para SDK 5 de cliente.

  2. En una instancia Linux EC2 que tenga acceso a su clúster, instale el servidor web NGINX o Apache:

    Amazon Linux
    • NGINX

      $ sudo yum install nginx
    • Apache

      $ sudo yum install httpd24 mod24_ssl
    Amazon Linux 2
    • Para obtener información sobre cómo descargar la última versión de NGINX en Amazon Linux 2, consulte el sitio web de NGINX.

      La última versión de NGINX disponible para Amazon Linux 2 utiliza una versión de OpenSSL más reciente que la versión de sistema de OpenSSL. Después de instalar NGINX, debe crear un enlace simbólico desde la biblioteca del motor dinámico de OpenSSL de AWS CloudHSM a la ubicación que esta versión de OpenSSL espera.

      $ sudo ln -sf /opt/cloudhsm/lib/libcloudhsm_openssl_engine.so /usr/lib64/engines-1.1/cloudhsm.so
    • Apache

      $ sudo yum install httpd mod_ssl
    CentOS 7
    Red Hat 7
    • Para obtener información sobre cómo descargar la última versión de NGINX en Red Hat 7, consulte el sitio web de NGINX.

      La última versión de NGINX disponible para Red Hat 7 utiliza una versión de OpenSSL más reciente que la versión de sistema de OpenSSL. Después de instalar NGINX, debe crear un enlace simbólico desde la biblioteca del motor dinámico de OpenSSL de AWS CloudHSM a la ubicación que esta versión de OpenSSL espera.

      $ sudo ln -sf /opt/cloudhsm/lib/libcloudhsm_openssl_engine.so /usr/lib64/engines-1.1/cloudhsm.so
    • Apache

      $ sudo yum install httpd mod_ssl
    CentOS 8
    • NGINX

      $ sudo yum install nginx
    • Apache

      $ sudo yum install httpd mod_ssl
    Red Hat 8
    • NGINX

      $ sudo yum install nginx
    • Apache

      $ sudo yum install httpd mod_ssl
    Ubuntu 18.04
    • NGINX

      $ sudo apt install nginx
    • Apache

      $ sudo apt install apache2
    Ubuntu 20.04
    • NGINX

      $ sudo apt install nginx
    • Apache

      $ sudo apt install apache2
    Ubuntu 22.04

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

  3. Utilice la CLI de CloudHSM para crear una CU. Para obtener más información sobre la administración de los usuarios de HSM, consulte Administrar a los usuarios de HSM con la CLI de CloudHSM.

    sugerencia

    Realice un seguimiento del nombre de usuario y la contraseña del CU. Los necesitará más adelante cuando genere o importe el certificado y la clave privada de HTTPS para el servidor web.

Después de completar estos pasos, vaya a Paso 2: generar o importar una clave privada y un certificado SSL/TLS.

Notas
  • Para usar Linux con seguridad mejorada (SELinux) y servidores web, debe permitir las conexiones TCP salientes en el puerto 2223, que es el puerto que el SDK 5 de cliente utiliza para comunicarse con el HSM.

  • Para crear y activar un clúster y permitir que una instancia EC2 acceda al clúster, complete los pasos que se indican en Introducción a AWS CloudHSM. La introducción ofrece instrucciones paso a paso para crear un clúster activo con un HSM y una instancia de cliente de Amazon EC2. Puede utilizar esta instancia de cliente como su servidor web.

  • Para evitar deshabilitar la durabilidad de la clave de cliente, agregue más de un HSM a su clúster. Para obtener más información, consulte Agregar un HSM a un clúster de AWS CloudHSM.

  • Para conectarse a su instancia de cliente, puede utilizar SSH o PuTTY. Para obtener más información, consulte Conectarse a la instancia de Linux mediante SSH o Conectarse a la instancia de Linux desde Windows mediante PuTTY en la documentación de Amazon EC2.

Requisitos previos para el SDK 3 de cliente

Si desea configurar un servidor web para la descarga SSL/TLS con SDK 3 de cliente, necesita lo siguiente:

  • Un clúster de AWS CloudHSM activo que tenga como mínimo un HSM.

  • Una instancia de Amazon EC2 que ejecute el sistema operativo Linux y tenga el siguiente software instalado:

    • El cliente y las herramientas de línea de comandos de AWS CloudHSM.

    • La aplicación del servidor web NGINX o Apache.

    • El motor dinámico de AWS CloudHSM para OpenSSL.

  • Un usuario de criptografía (CU) que sea el propietario y administre la clave privada del servidor web en el HSM.

Para configurar una instancia de servidor web de Linux y crear un CU en el HSM
  1. Realice los pasos que se indican en Introducción. Así, dispondrá de un clúster activo con un HSM y una instancia de cliente de Amazon EC2. La instancia EC2 se configurará con las herramientas de línea de comandos. Utilice esta instancia de cliente como su servidor web.

  2. Conéctese a su instancia de cliente. Para obtener más información, consulte Conectarse a la instancia de Linux mediante SSH o Conectarse a la instancia de Linux desde Windows mediante PuTTY en la documentación de Amazon EC2.

  3. En una instancia Linux EC2 que tenga acceso a su clúster, instale el servidor web NGINX o Apache:

    Amazon Linux
    • NGINX

      $ sudo yum install nginx
    • Apache

      $ sudo yum install httpd24 mod24_ssl
    Amazon Linux 2
    • La versión 1.19 de NGINX es la última versión de NGINX compatible con el motor del SDK 3 de cliente de Amazon Linux 2.

      Para obtener más información y descargar la versión 1.19 de NGINX, consulte el sitio web de NGINX.

    • Apache

      $ sudo yum install httpd mod_ssl
    CentOS 7
    • La versión 1.19 de NGINX es la última versión de NGINX compatible con el motor del SDK 3 de cliente de Centos 7.

      Para obtener más información y descargar la versión 1.19 de NGINX, consulte el sitio web de NGINX.

    • Apache

      $ sudo yum install httpd mod_ssl
    Red Hat 7
    • La versión 1.19 de NGINX es la última versión de NGINX compatible con el motor del SDK 3 de cliente de Red Hat 7.

      Para obtener más información y descargar la versión 1.19 de NGINX, consulte el sitio web de NGINX.

    • Apache

      $ sudo yum install httpd mod_ssl
    Ubuntu 16.04
    • NGINX

      $ sudo apt install nginx
    • Apache

      $ sudo apt install apache2
    Ubuntu 18.04
    • NGINX

      $ sudo apt install nginx
    • Apache

      $ sudo apt install apache2
  4. (Opcional) Añada más HSM a su clúster. Para obtener más información, consulte Agregar un HSM a un clúster de AWS CloudHSM.

  5. Utilice cloudhsm_mgmt_util para crear un CU. Para obtener más información, consulte Usuarios de HSM. Realice un seguimiento del nombre de usuario y la contraseña del CU. Los necesitará más adelante cuando genere o importe el certificado y la clave privada de HTTPS para el servidor web.

Después de completar estos pasos, vaya a Paso 2: generar o importar una clave privada y un certificado SSL/TLS.

Paso 2: generar o importar una clave privada y un certificado SSL/TLS

Para habilitar HTTPS, la aplicación del servidor web (NGINX o Apache) necesita una clave privada y un certificado SSL/TLS correspondiente. Si desea utilizar un servidor web para la descarga SSL/TLS con AWS CloudHSM, debe almacenar la clave privada en un HSM del clúster de AWS CloudHSM. Puede realizar esta operación de una de las siguientes formas:

  • Si todavía no dispone de una clave privada y un certificado correspondiente, genere una clave privada en un HSM. Use la clave privada para crear una solicitud de firma de certificado (CSR), la cual utilizará para crear un certificado SSL/TLS.

  • Si ya dispone de una clave privada y de su certificado correspondiente, puede importar la clave privada a un HSM.

Independientemente del método anterior que elija, se exporta una clave privada PEM falsa del HSM, que es un archivo de clave privada en formato PEM que contiene una referencia a la clave privada almacenada en el HSM (no es la clave privada real). El servidor web utiliza el archivo de clave privada PEM falso para identificar la clave privada en el HSM durante la descarga de SSL/TLS.

Generación de una clave privada y un certificado

Generación de una clave privada

En esta sección, se muestra cómo generar un par de claves mediante el uso de la herramienta Utilidad de administración de claves (KMU) del SDK 3 de cliente. Una vez que haya generado un par de claves dentro del HSM, puede exportarlo como un archivo PEM falso y generar el certificado correspondiente.

Las claves privadas generadas con la utilidad de administración de claves (KMU) se pueden usar tanto con el SSK 3 de cliente como con el SDK 5 de cliente.

Instalación y configuración de la herramienta Utilidad de administración de claves (KMU)
  1. Conéctese a su instancia de cliente.

  2. Instalación y configuración de SDK 3 de cliente.

  3. Ejecute el siguiente comando para iniciar el cliente de AWS CloudHSM.

    Amazon Linux
    $ sudo start cloudhsm-client
    Amazon Linux 2
    $ sudo service cloudhsm-client start
    CentOS 7
    $ sudo service cloudhsm-client start
    CentOS 8
    $ sudo service cloudhsm-client start
    RHEL 7
    $ sudo service cloudhsm-client start
    RHEL 8
    $ sudo service cloudhsm-client start
    Ubuntu 16.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 18.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 20.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

  4. Ejecute el siguiente comando para iniciar la herramienta de línea de comandos key_mgmt_util.

    $ /opt/cloudhsm/bin/key_mgmt_util
  5. Ejecute el siguiente comando para iniciar sesión en el HSM. Reemplace <nombre de usuario> y <password> por el nombre de usuario y la contraseña del usuario criptográfico (CU).

    Command: loginHSM -u CU -s <user name> -p <password>>

Generación una clave privada

Según su caso de uso, puede generar un par de claves RSA o EC. Realice una de las siguientes acciones siguientes:

  • Cómo generar una clave privada RSA en un HSM

    Utilice el comando genRSAKeyPair para generar un par de claves RSA. Este ejemplo genera un par de claves RSA con un módulo de 2048, un exponente público de 65537 y una etiqueta de tls_rsa_keypair.

    Command: genRSAKeyPair -m 2048 -e 65537 -l tls_rsa_keypair

    Si el comando se ejecutó correctamente, debería ver el siguiente resultado que indica que ha generado correctamente un par de claves RSA.

    Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 7 private key handle: 8 Cluster Status: Node id 1 status: 0x00000000 : HSM Return: SUCCESS
  • Cómo generar una clave privada EC en un HSM

    Utilice el comando genECCKeyPair para generar un par de claves EC. Este ejemplo genera un par de claves EC con un ID de curva de 2 (correspondiente a la curva NID_X9_62_prime256v1 ) y una etiqueta de tls_ec_keypair.

    Command: genECCKeyPair -i 2 -l tls_ec_keypair

    Si el comando se ejecutó correctamente, debería ver el siguiente resultado que indica que ha generado correctamente un par de claves EC.

    Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 7 private key handle: 8 Cluster Status: Node id 1 status: 0x00000000 : HSM Return: SUCCESS

Exportación de un archivo de clave privada PEM falso

Una vez que tenga una clave privada en el HSM, debe exportar un archivo de clave privada PEM falso. Este archivo no contiene los datos de clave reales, pero permite que el motor dinámico de OpenSSL identifique la clave privada en el HSM. A continuación, puede utilizar la clave privada para crear una solicitud de firma de certificado (CSR) y firmar la CSR para crear el certificado.

nota

Los archivos PEM falsos generados con la herramienta Utilidad de administración de claves (KMU) se pueden usar tanto con el SDK 3 de cliente como con el SDK 5 de cliente.

Identifique el identificador de claves que corresponde a la clave que desea exportar como un PEM falso y, a continuación, ejecute el siguiente comando para exportar la clave privada en un formato PEM falso y guárdela en un archivo. Reemplace los valores siguientes por sus propios valores.

  • <private_key_handle>: identificador de la clave privada generada. Este identificador se generó por uno de los comandos de generación de claves del paso anterior. En el ejemplo anterior, el identificador de la clave privada es 8.

  • <web_server_fake_PEM.key>: nombre del archivo en el que se escribirá la clave PEM falsa.

Command: getCaviumPrivKey -k <private_key_handle> -out <web_server_fake_PEM.key>

Exit (Salir)

Ejecute el comando siguiente para detener el key_mgmt_util.

Command: exit

Ahora debería tener un nuevo archivo en su sistema, ubicado en la ruta especificada<web_server_fake_PEM.key> del comando anterior. Este archivo es el archivo de clave privada PEM falso.

Generación de un certificado autofirmado

Una vez que haya generado una clave privada PEM falsa, puede usar este archivo para generar una solicitud de firma de certificado (CSR) y un certificado.

En un entorno de producción, normalmente se usa una entidad de certificación (CA) para crear un certificado de una CSR. No es necesaria una CA para un entorno de prueba. Si utiliza una CA, envíele el archivo CSR y utilice el certificado SSL/TLS firmado que le proporcione en su servidor web para HTTPS.

Como alternativa al uso de una CA, puede utilizar el motor dinámico de para OpenSSL de AWS CloudHSM para crear un certificado autofirmado. Los navegadores no confían en certificados autofirmados y no deben utilizarse en entornos de producción. Se pueden usar en entornos de prueba.

aviso

Los certificados autofirmados deben utilizarse únicamente en entornos de prueba. En entornos de producción, utilice un método más seguro como, por ejemplo, una autoridad de certificación para crear un certificado.

Instalación y configuración del motor dinámico de OpenSSL
  1. Conéctese a su instancia de cliente.

  2. Para instalar y configurar, realice una de las siguientes acciones:

Generación de un certificado
  1. Obtener una copia del archivo PEM falso generado en un paso anterior.

  2. Creación de una CSR

    Ejecute el siguiente comando si desea utilizar el motor dinámico de OpenSSL de AWS CloudHSM para crear una solicitud de firma de certificado (CSR). Reemplace <web_server_fake_PEM.key> por el nombre del archivo que contiene la clave privada de PEM falsa. Reemplace <web_server.csr> por el nombre del archivo que contiene la CSR.

    El comando req es interactivo. Responderá a cada campo. La información del campo se copia en su certificado SSL/TLS.

    $ openssl req -engine cloudhsm -new -key <web_server_fake_PEM.key> -out <web_server.csr>
  3. Creación de un certificado autofirmado

    Ejecute el comando siguiente para utilizar el motor dinámico de OpenSSL de AWS CloudHSM para firmar la CSR con la clave privada de su HSM. Esto creará un certificado autofirmado. Reemplace los siguientes valores en el comando por sus propios valores.

    • <web_server.csr>: nombre del archivo que contiene la CSR.

    • <web_server_fake_PEM.key>: nombre del archivo que contiene la clave privada PEM falsa.

    • <web_server.crt>: nombre del archivo que contendrá su certificado de servidor web.

    $ openssl x509 -engine cloudhsm -req -days 365 -in <web_server.csr> -signkey <web_server_fake_PEM.key> -out <web_server.crt>

Después de completar estos pasos, vaya a Paso 3: configurar el servidor web.

Importación de una clave privada y un certificado existentes

Es posible que ya disponga de una clave privada y un certificado SSL/TLS correspondiente que utiliza para HTTPS en su servidor web. En caso afirmativo, puede importar la clave a un HSM siguiendo los pasos indicados en esta sección.

nota

Algunas notas sobre la importación de claves privadas y la compatibilidad con el SDK de cliente:

  • La importación de una clave privada existente requiere el SDK 3 de cliente.

  • Puede usar claves privadas del SDK 3 de cliente con el SDK 5 de cliente.

  • El motor dinámico de Open SSL para el SDK 3 de cliente no es compatible con las plataformas Linux más recientes, pero sí lo es la implementación del motor dinámico de Open SSL para el SDK 5 de cliente. Puede importar una clave privada existente mediante la herramienta Utilidad de administración de claves (KMU) incluida con el SDK 3 de cliente y, a continuación, usar esa clave privada y la implementación del motor dinámico de OpenSSL con el SDK 5 de cliente para admitir la descarga de SSL/TLS en las plataformas Linux más recientes.

Cómo importar una clave privada existente a un HSM con SDK 3 de cliente
  1. Conéctese a su instancia de cliente de Amazon EC2. Si es necesario, copie su clave privada y el certificado en la instancia.

  2. Instalación and configuración de SDK 3 de cliente

  3. Ejecute el siguiente comando para iniciar el cliente de AWS CloudHSM.

    Amazon Linux
    $ sudo start cloudhsm-client
    Amazon Linux 2
    $ sudo service cloudhsm-client start
    CentOS 7
    $ sudo service cloudhsm-client start
    CentOS 8
    $ sudo service cloudhsm-client start
    RHEL 7
    $ sudo service cloudhsm-client start
    RHEL 8
    $ sudo service cloudhsm-client start
    Ubuntu 16.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 18.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 20.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

  4. Ejecute el siguiente comando para iniciar la herramienta de línea de comandos key_mgmt_util.

    $ /opt/cloudhsm/bin/key_mgmt_util
  5. Ejecute el siguiente comando para iniciar sesión en el HSM. Reemplace <nombre de usuario> y <password> por el nombre de usuario y la contraseña del usuario criptográfico (CU).

    Command: loginHSM -u CU -s <user name> -p <password>
  6. Ejecute los siguientes comandos para importar la clave privada a un HSM.

    1. Ejecute el siguiente comando para crear una clave de encapsulación simétrica que sea válida únicamente para la sesión actual. El comando y el resultado se muestran aquí.

      Command: genSymKey -t 31 -s 16 -sess -l wrapping_key_for_import Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Created. Key Handle: 6 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
    2. Ejecute el siguiente comando para importar la clave privada actual a un HSM. El comando y el resultado se muestran aquí. Reemplace los valores siguientes por sus propios valores:

      • <web_server_existing.key>: nombre del archivo que contiene su clave privada.

      • <web_server_imported_key>: etiqueta para su clave privada importada.

      • <wrapping_key_handle>: identificador de clave de encapsulamiento generado en el comando anterior. En el ejemplo anterior el identificador de clave de encapsulación es 6.

      Command: importPrivateKey -f <web_server_existing.key> -l <web_server_imported_key> -w <wrapping_key_handle> BER encoded key length is 1219 Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Private Key Unwrapped. Key Handle: 8 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
  7. Ejecute el comando siguiente para exportar la clave privada en formato PEM falso y guardarla en un archivo. Reemplace los valores siguientes por sus propios valores.

    • <private_key_handle>: identificador de la clave privada importada. Este identificador se generó con el segundo comando del paso anterior. En el ejemplo anterior, el identificador de la clave privada es 8.

    • <web_server_fake_PEM.key>: nombre del archivo que contiene su clave privada PEM falsa exportada.

    Command: getCaviumPrivKey -k <private_key_handle> -out <web_server_fake_PEM.key>
  8. Ejecute el comando siguiente para detener key_mgmt_util.

    Command: exit

Después de completar estos pasos, vaya a Paso 3: configurar el servidor web.

Paso 3: configurar el servidor web

Actualice la configuración de software del servidor web para utilizar el certificado HTTPS y la correspondiente clave privada PEM falsa que ha creado en el paso anterior. Recuerde hacer una copia de seguridad de sus certificados y claves existentes antes de empezar. De este modo, concluirá la configuración del software del servidor web de Linux para la descarga SSL/TLS con AWS CloudHSM.

Complete los pasos indicados en una de las siguientes secciones.

Configuración del servidor web NGINX

Use esta sección para configurar NGINX en las plataformas compatibles.

Para actualizar la configuración del servidor web para NGINX
  1. Conéctese a su instancia de cliente.

  2. Ejecute el siguiente comando para crear los directorios necesarios para el certificado del servidor web y la clave privada PEM falsa.

    $ sudo mkdir -p /etc/pki/nginx/private
  3. Ejecute el siguiente comando para copiar su certificado de servidor web en la ubicación necesaria. Sustituya <web_server.crt> por el nombre del certificado de servidor web.

    $ sudo cp <web_server.crt> /etc/pki/nginx/server.crt
  4. Ejecute el siguiente comando para copiar la clave privada PEM falsa en la ubicación necesaria. Reemplace <web_server_fake_PEM.key> por el nombre del archivo que contiene la clave privada de PEM falsa.

    $ sudo cp <web_server_fake_PEM.key> /etc/pki/nginx/private/server.key
  5. Ejecute el siguiente comando para cambiar la propiedad de estos archivos para que el usuario denominado nginx pueda leerlos.

    $ sudo chown nginx /etc/pki/nginx/server.crt /etc/pki/nginx/private/server.key
  6. Ejecute el siguiente comando para hacer una copia de seguridad del archivo /etc/nginx/nginx.conf.

    $ sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup
  7. Actualizar la configuración de NGINX

    nota

    Cada clúster puede soportar un máximo de 1000 procesos de trabajo de NGINX en todos los servidores web de NGINX.

    Amazon Linux

    Utilice un editor de texto para editar el archivo /etc/nginx/nginx.conf. Esto requiere permisos de raíz de Linux. En la parte superior del archivo, añada la siguiente línea:

    • Si usa SDK 3 de cliente

      ssl_engine cloudhsm; env n3fips_password;
    • Si usa SDK 5 de cliente

      ssl_engine cloudhsm; env CLOUDHSM_PIN;

    Agregue lo siguiente a la sección TLS del archivo:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Amazon Linux 2

    Utilice un editor de texto para editar el archivo /etc/nginx/nginx.conf. Esto requiere permisos de raíz de Linux. En la parte superior del archivo, añada la siguiente línea:

    • Si usa SDK 3 de cliente

      ssl_engine cloudhsm; env n3fips_password;
    • Si usa SDK 5 de cliente

      ssl_engine cloudhsm; env CLOUDHSM_PIN;

    Agregue lo siguiente a la sección TLS del archivo:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    CentOS 7

    Utilice un editor de texto para editar el archivo /etc/nginx/nginx.conf. Esto requiere permisos de raíz de Linux. En la parte superior del archivo, añada la siguiente línea:

    • Si usa SDK 3 de cliente

      ssl_engine cloudhsm; env n3fips_password;
    • Si usa SDK 5 de cliente

      ssl_engine cloudhsm; env CLOUDHSM_PIN;

    Agregue lo siguiente a la sección TLS del archivo:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    CentOS 8

    Utilice un editor de texto para editar el archivo /etc/nginx/nginx.conf. Esto requiere permisos de raíz de Linux. En la parte superior del archivo, añada la siguiente línea:

    ssl_engine cloudhsm; env CLOUDHSM_PIN;

    Agregue lo siguiente a la sección TLS del archivo:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Red Hat 7

    Utilice un editor de texto para editar el archivo /etc/nginx/nginx.conf. Esto requiere permisos de raíz de Linux. En la parte superior del archivo, añada la siguiente línea:

    • Si usa SDK 3 de cliente

      ssl_engine cloudhsm; env n3fips_password;
    • Si usa SDK 5 de cliente

      ssl_engine cloudhsm; env CLOUDHSM_PIN;

    Agregue lo siguiente a la sección TLS del archivo:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Red Hat 8

    Utilice un editor de texto para editar el archivo /etc/nginx/nginx.conf. Esto requiere permisos de raíz de Linux. En la parte superior del archivo, añada la siguiente línea:

    ssl_engine cloudhsm; env CLOUDHSM_PIN;

    Agregue lo siguiente a la sección TLS del archivo:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Ubuntu 16.04 LTS

    Utilice un editor de texto para editar el archivo /etc/nginx/nginx.conf. Esto requiere permisos de raíz de Linux. En la parte superior del archivo, añada la siguiente línea:

    ssl_engine cloudhsm; env n3fips_password;

    Agregue lo siguiente a la sección TLS del archivo:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Ubuntu 18.04 LTS

    Utilice un editor de texto para editar el archivo /etc/nginx/nginx.conf. Esto requiere permisos de raíz de Linux. En la parte superior del archivo, añada la siguiente línea:

    ssl_engine cloudhsm; env CLOUDHSM_PIN;

    Agregue lo siguiente a la sección TLS del archivo:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Ubuntu 20.04 LTS

    Utilice un editor de texto para editar el archivo /etc/nginx/nginx.conf. Esto requiere permisos de raíz de Linux. En la parte superior del archivo, añada la siguiente línea:

    ssl_engine cloudhsm; env CLOUDHSM_PIN;

    Agregue lo siguiente a la sección TLS del archivo:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

    Guarde el archivo.

  8. Haga una copia de seguridad del archivo de configuración systemd y, a continuación, establezca la ruta de EnvironmentFile.

    Amazon Linux

    No hay que hacer nada.

    Amazon Linux 2
    1. Haga una copia de seguridad del archivo nginx.service.

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. Abra el archivo /lib/systemd/system/nginx.service en un editor de texto y, a continuación, en la sección [Service], añada la siguiente ruta:

      EnvironmentFile=/etc/sysconfig/nginx
    CentOS 7

    No hay que hacer nada.

    CentOS 8
    1. Haga una copia de seguridad del archivo nginx.service.

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. Abra el archivo /lib/systemd/system/nginx.service en un editor de texto y, a continuación, en la sección [Service], añada la siguiente ruta:

      EnvironmentFile=/etc/sysconfig/nginx
    Red Hat 7

    No hay que hacer nada.

    Red Hat 8
    1. Haga una copia de seguridad del archivo nginx.service.

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. Abra el archivo /lib/systemd/system/nginx.service en un editor de texto y, a continuación, en la sección [Service], añada la siguiente ruta:

      EnvironmentFile=/etc/sysconfig/nginx
    Ubuntu 16.04
    1. Haga una copia de seguridad del archivo nginx.service.

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. Abra el archivo /lib/systemd/system/nginx.service en un editor de texto y, a continuación, en la sección [Service], añada la siguiente ruta:

      EnvironmentFile=/etc/sysconfig/nginx
    Ubuntu 18.04
    1. Haga una copia de seguridad del archivo nginx.service.

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. Abra el archivo /lib/systemd/system/nginx.service en un editor de texto y, a continuación, en la sección [Service], añada la siguiente ruta:

      EnvironmentFile=/etc/sysconfig/nginx
    Ubuntu 20.04 LTS
    1. Haga una copia de seguridad del archivo nginx.service.

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. Abra el archivo /lib/systemd/system/nginx.service en un editor de texto y, a continuación, en la sección [Service], añada la siguiente ruta:

      EnvironmentFile=/etc/sysconfig/nginx
    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

  9. Compruebe si existe el archivo /etc/sysconfig/nginx y, a continuación, realice una de las operaciones siguientes:

    • Si el archivo existe, haga una copia de seguridad del mismo ejecutando el siguiente comando:

      $ sudo cp /etc/sysconfig/nginx /etc/sysconfig/nginx.backup
    • Si el archivo no existe, abra un editor de texto y, a continuación, cree un archivo denominado nginx en la carpeta /etc/sysconfig/.

  10. Configure el entorno NGINX.

    nota

    El SDK 5 de cliente introduce la variable de entorno CLOUDHSM_PIN para almacenar las credenciales del CU.

    Amazon Linux

    Abra el archivo /etc/sysconfig/nginx en un editor de texto. Esto requiere permisos de raíz de Linux. Añada las credenciales del usuario de criptografía (CU):

    • Si usa SDK 3 de cliente

      n3fips_password=<CU user name>:<password>
    • Si usa SDK 5 de cliente

      CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    Guarde el archivo.

    Amazon Linux 2

    Abra el archivo /etc/sysconfig/nginx en un editor de texto. Esto requiere permisos de raíz de Linux. Añada las credenciales del usuario de criptografía (CU):

    • Si usa SDK 3 de cliente

      n3fips_password=<CU user name>:<password>
    • Si usa SDK 5 de cliente

      CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    Guarde el archivo.

    CentOS 7

    Abra el archivo /etc/sysconfig/nginx en un editor de texto. Esto requiere permisos de raíz de Linux. Añada las credenciales del usuario de criptografía (CU):

    • Si usa SDK 3 de cliente

      n3fips_password=<CU user name>:<password>
    • Si usa SDK 5 de cliente

      CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    Guarde el archivo.

    CentOS 8

    Abra el archivo /etc/sysconfig/nginx en un editor de texto. Esto requiere permisos de raíz de Linux. Añada las credenciales del usuario de criptografía (CU):

    CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    Guarde el archivo.

    Red Hat 7

    Abra el archivo /etc/sysconfig/nginx en un editor de texto. Esto requiere permisos de raíz de Linux. Añada las credenciales del usuario de criptografía (CU):

    • Si usa SDK 3 de cliente

      n3fips_password=<CU user name>:<password>
    • Si usa SDK 5 de cliente

      CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    Guarde el archivo.

    Red Hat 8

    Abra el archivo /etc/sysconfig/nginx en un editor de texto. Esto requiere permisos de raíz de Linux. Añada las credenciales del usuario de criptografía (CU):

    CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    Guarde el archivo.

    Ubuntu 16.04 LTS

    Abra el archivo /etc/sysconfig/nginx en un editor de texto. Esto requiere permisos de raíz de Linux. Añada las credenciales del usuario de criptografía (CU):

    n3fips_password=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    Guarde el archivo.

    Ubuntu 18.04 LTS

    Abra el archivo /etc/sysconfig/nginx en un editor de texto. Esto requiere permisos de raíz de Linux. Añada las credenciales del usuario de criptografía (CU):

    CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    Guarde el archivo.

    Ubuntu 20.04 LTS

    Abra el archivo /etc/sysconfig/nginx en un editor de texto. Esto requiere permisos de raíz de Linux. Añada las credenciales del usuario de criptografía (CU):

    CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    Guarde el archivo.

    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

  11. Inicie el servidor web NGINX.

    Amazon Linux

    Abra el archivo /etc/sysconfig/nginx en un editor de texto. Esto requiere permisos de raíz de Linux. Añada las credenciales del usuario de criptografía (CU):

    $ sudo service nginx start
    Amazon Linux 2

    Detención de cualquier proceso de NGINX en ejecución

    $ sudo systemctl stop nginx

    Recarga de la configuración systemd para incluir los últimos cambios

    $ sudo systemctl daemon-reload

    Inicio del proceso de NGINX

    $ sudo systemctl start nginx
    CentOS 7

    Detención de cualquier proceso de NGINX en ejecución

    $ sudo systemctl stop nginx

    Recarga de la configuración systemd para incluir los últimos cambios

    $ sudo systemctl daemon-reload

    Inicio del proceso de NGINX

    $ sudo systemctl start nginx
    CentOS 8

    Detención de cualquier proceso de NGINX en ejecución

    $ sudo systemctl stop nginx

    Recarga de la configuración systemd para incluir los últimos cambios

    $ sudo systemctl daemon-reload

    Inicio del proceso de NGINX

    $ sudo systemctl start nginx
    Red Hat 7

    Detención de cualquier proceso de NGINX en ejecución

    $ sudo systemctl stop nginx

    Recarga de la configuración systemd para incluir los últimos cambios

    $ sudo systemctl daemon-reload

    Inicio del proceso de NGINX

    $ sudo systemctl start nginx
    Red Hat 8

    Detención de cualquier proceso de NGINX en ejecución

    $ sudo systemctl stop nginx

    Recarga de la configuración systemd para incluir los últimos cambios

    $ sudo systemctl daemon-reload

    Inicio del proceso de NGINX

    $ sudo systemctl start nginx
    Ubuntu 16.04 LTS

    Detención de cualquier proceso de NGINX en ejecución

    $ sudo systemctl stop nginx

    Recarga de la configuración systemd para incluir los últimos cambios

    $ sudo systemctl daemon-reload

    Inicio del proceso de NGINX

    $ sudo systemctl start nginx
    Ubuntu 18.04 LTS

    Detención de cualquier proceso de NGINX en ejecución

    $ sudo systemctl stop nginx

    Recarga de la configuración systemd para incluir los últimos cambios

    $ sudo systemctl daemon-reload

    Inicio del proceso de NGINX

    $ sudo systemctl start nginx
    Ubuntu 20.04 LTS

    Detención de cualquier proceso de NGINX en ejecución

    $ sudo systemctl stop nginx

    Recarga de la configuración systemd para incluir los últimos cambios

    $ sudo systemctl daemon-reload

    Inicio del proceso de NGINX

    $ sudo systemctl start nginx
    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

  12. (Opcional) Configure su plataforma para iniciar NGINX en el arranque.

    Amazon Linux
    $ sudo chkconfig nginx on
    Amazon Linux 2
    $ sudo systemctl enable nginx
    CentOS 7

    No hay que hacer nada.

    CentOS 8
    $ sudo systemctl enable nginx
    Red Hat 7

    No hay que hacer nada.

    Red Hat 8
    $ sudo systemctl enable nginx
    Ubuntu 16.04 LTS
    $ sudo systemctl enable nginx
    Ubuntu 18.04 LTS
    $ sudo systemctl enable nginx
    Ubuntu 20.04 LTS
    $ sudo systemctl enable nginx
    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

Después de actualizar la configuración del servidor web, vaya a Paso 4: habilitar el tráfico HTTPS y verificar el certificado.

Configuración del servidor web Apache

Use esta sección para configurar Apache en las plataformas compatibles.

Para actualizar la configuración del servidor web para Apache
  1. Conéctese a su instancia de cliente de Amazon EC2.

  2. Defina las ubicaciones predeterminadas de los certificados y las claves privadas de su plataforma.

    Amazon Linux

    En el archivo /etc/httpd/conf.d/ssl.conf, asegúrese de que existan estos valores:

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    Amazon Linux 2

    En el archivo /etc/httpd/conf.d/ssl.conf, asegúrese de que existan estos valores:

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    CentOS 7

    En el archivo /etc/httpd/conf.d/ssl.conf, asegúrese de que existan estos valores:

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    CentOS 8

    En el archivo /etc/httpd/conf.d/ssl.conf, asegúrese de que existan estos valores:

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    Red Hat 7

    En el archivo /etc/httpd/conf.d/ssl.conf, asegúrese de que existan estos valores:

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    Red Hat 8

    En el archivo /etc/httpd/conf.d/ssl.conf, asegúrese de que existan estos valores:

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    Ubuntu 16.04 LTS

    En el archivo /etc/apache2/sites-available/default-ssl.conf, asegúrese de que existan estos valores:

    SSLCertificateFile /etc/ssl/certs/localhost.crt SSLCertificateKeyFile /etc/ssl/private/localhost.key
    Ubuntu 18.04 LTS

    En el archivo /etc/apache2/sites-available/default-ssl.conf, asegúrese de que existan estos valores:

    SSLCertificateFile /etc/ssl/certs/localhost.crt SSLCertificateKeyFile /etc/ssl/private/localhost.key
    Ubuntu 20.04 LTS

    En el archivo /etc/apache2/sites-available/default-ssl.conf, asegúrese de que existan estos valores:

    SSLCertificateFile /etc/ssl/certs/localhost.crt SSLCertificateKeyFile /etc/ssl/private/localhost.key
    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

  3. Copie el certificado de su servidor web en la ubicación requerida según su plataforma.

    Amazon Linux
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    Sustituya <web_server.crt> por el nombre del certificado de servidor web.

    Amazon Linux 2
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    Sustituya <web_server.crt> por el nombre del certificado de servidor web.

    CentOS 7
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    Sustituya <web_server.crt> por el nombre del certificado de servidor web.

    CentOS 8
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    Sustituya <web_server.crt> por el nombre del certificado de servidor web.

    Red Hat 7
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    Sustituya <web_server.crt> por el nombre del certificado de servidor web.

    Red Hat 8
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    Sustituya <web_server.crt> por el nombre del certificado de servidor web.

    Ubuntu 16.04 LTS
    $ sudo cp <web_server.crt> /etc/ssl/certs/localhost.crt

    Sustituya <web_server.crt> por el nombre del certificado de servidor web.

    Ubuntu 18.04 LTS
    $ sudo cp <web_server.crt> /etc/ssl/certs/localhost.crt

    Sustituya <web_server.crt> por el nombre del certificado de servidor web.

    Ubuntu 20.04 LTS
    $ sudo cp <web_server.crt> /etc/ssl/certs/localhost.crt

    Sustituya <web_server.crt> por el nombre del certificado de servidor web.

    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

  4. Copie su clave privada PEM falsa en la ubicación requerida según su plataforma.

    Amazon Linux
    $ sudo cp <web_server_fake_PEM.key> /etc/pki/tls/private/localhost.key

    Reemplace <web_server_fake_PEM.key> por el nombre del archivo que contiene la clave privada de PEM falsa.

    Amazon Linux 2
    $ sudo cp <web_server_fake_PEM.key> /etc/pki/tls/private/localhost.key

    Reemplace <web_server_fake_PEM.key> por el nombre del archivo que contiene la clave privada de PEM falsa.

    CentOS 7
    $ sudo cp <web_server_fake_PEM.key> /etc/pki/tls/private/localhost.key

    Reemplace <web_server_fake_PEM.key> por el nombre del archivo que contiene la clave privada de PEM falsa.

    CentOS 8
    $ sudo cp <web_server_fake_PEM.key> /etc/pki/tls/private/localhost.key

    Reemplace <web_server_fake_PEM.key> por el nombre del archivo que contiene la clave privada de PEM falsa.

    Red Hat 7
    $ sudo cp <web_server_fake_PEM.key> /etc/pki/tls/private/localhost.key

    Reemplace <web_server_fake_PEM.key> por el nombre del archivo que contiene la clave privada de PEM falsa.

    Red Hat 8
    $ sudo cp <web_server_fake_PEM.key> /etc/pki/tls/private/localhost.key

    Reemplace <web_server_fake_PEM.key> por el nombre del archivo que contiene la clave privada de PEM falsa.

    Ubuntu 16.04 LTS
    $ sudo cp <web_server_fake_PEM.key> /etc/ssl/private/localhost.key

    Reemplace <web_server_fake_PEM.key> por el nombre del archivo que contiene la clave privada de PEM falsa.

    Ubuntu 18.04 LTS
    $ sudo cp <web_server_fake_PEM.key> /etc/ssl/private/localhost.key

    Reemplace <web_server_fake_PEM.key> por el nombre del archivo que contiene la clave privada de PEM falsa.

    Ubuntu 20.04 LTS
    $ sudo cp <web_server_fake_PEM.key> /etc/ssl/private/localhost.key

    Reemplace <web_server_fake_PEM.key> por el nombre del archivo que contiene la clave privada de PEM falsa.

    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

  5. Cambie la propiedad de estos archivos si así lo requiere su plataforma.

    Amazon Linux
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    Proporciona permisos de lectura al usuario apache.

    Amazon Linux 2
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    Proporciona permisos de lectura al usuario apache.

    CentOS 7
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    Proporciona permisos de lectura al usuario apache.

    CentOS 8
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    Proporciona permisos de lectura al usuario apache.

    Red Hat 7
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    Proporciona permisos de lectura al usuario apache.

    Red Hat 8
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    Proporciona permisos de lectura al usuario apache.

    Ubuntu 16.04 LTS

    No hay que hacer nada.

    Ubuntu 18.04 LTS

    No hay que hacer nada.

    Ubuntu 20.04 LTS

    No hay que hacer nada.

    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

  6. Configure las directivas de Apache para su plataforma.

    Amazon Linux

    Localice el archivo SSL para esta plataforma:

    /etc/httpd/conf.d/ssl.conf

    Este archivo contiene las directivas de Apache que definen el funcionamiento del servidor. Las directivas se muestran a la izquierda, seguidas de un valor. Utilice un editor de texto para editar el archivo. Esto requiere permisos de raíz de Linux.

    Actualice o introduzca las siguientes directivas con estos valores:

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA

    Guarde el archivo.

    Amazon Linux 2

    Localice el archivo SSL para esta plataforma:

    /etc/httpd/conf.d/ssl.conf

    Este archivo contiene las directivas de Apache que definen el funcionamiento del servidor. Las directivas se muestran a la izquierda, seguidas de un valor. Utilice un editor de texto para editar el archivo. Esto requiere permisos de raíz de Linux.

    Actualice o introduzca las siguientes directivas con estos valores:

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA

    Guarde el archivo.

    CentOS 7

    Localice el archivo SSL para esta plataforma:

    /etc/httpd/conf.d/ssl.conf

    Este archivo contiene las directivas de Apache que definen el funcionamiento del servidor. Las directivas se muestran a la izquierda, seguidas de un valor. Utilice un editor de texto para editar el archivo. Esto requiere permisos de raíz de Linux.

    Actualice o introduzca las siguientes directivas con estos valores:

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA

    Guarde el archivo.

    CentOS 8

    Localice el archivo SSL para esta plataforma:

    /etc/httpd/conf.d/ssl.conf

    Este archivo contiene las directivas de Apache que definen el funcionamiento del servidor. Las directivas se muestran a la izquierda, seguidas de un valor. Utilice un editor de texto para editar el archivo. Esto requiere permisos de raíz de Linux.

    Actualice o introduzca las siguientes directivas con estos valores:

    SSLCryptoDevice cloudhsm SSLProtocol TLSv1.2 TLSv1.3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA SSLProxyCipherSuite HIGH:!aNULL

    Guarde el archivo.

    Red Hat 7

    Localice el archivo SSL para esta plataforma:

    /etc/httpd/conf.d/ssl.conf

    Este archivo contiene las directivas de Apache que definen el funcionamiento del servidor. Las directivas se muestran a la izquierda, seguidas de un valor. Utilice un editor de texto para editar el archivo. Esto requiere permisos de raíz de Linux.

    Actualice o introduzca las siguientes directivas con estos valores:

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA

    Guarde el archivo.

    Red Hat 8

    Localice el archivo SSL para esta plataforma:

    /etc/httpd/conf.d/ssl.conf

    Este archivo contiene las directivas de Apache que definen el funcionamiento del servidor. Las directivas se muestran a la izquierda, seguidas de un valor. Utilice un editor de texto para editar el archivo. Esto requiere permisos de raíz de Linux.

    Actualice o introduzca las siguientes directivas con estos valores:

    SSLCryptoDevice cloudhsm SSLProtocol TLSv1.2 TLSv1.3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA SSLProxyCipherSuite HIGH:!aNULL

    Guarde el archivo.

    Ubuntu 16.04 LTS

    Localice el archivo SSL para esta plataforma:

    /etc/apache2/mods-available/ssl.conf

    Este archivo contiene las directivas de Apache que definen el funcionamiento del servidor. Las directivas se muestran a la izquierda, seguidas de un valor. Utilice un editor de texto para editar el archivo. Esto requiere permisos de raíz de Linux.

    Actualice o introduzca las siguientes directivas con estos valores:

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA

    Guarde el archivo.

    Habilite el módulo SSL y la configuración predeterminada del sitio SSL:

    $ sudo a2enmod ssl $ sudo a2ensite default-ssl
    Ubuntu 18.04 LTS

    Localice el archivo SSL para esta plataforma:

    /etc/apache2/mods-available/ssl.conf

    Este archivo contiene las directivas de Apache que definen el funcionamiento del servidor. Las directivas se muestran a la izquierda, seguidas de un valor. Utilice un editor de texto para editar el archivo. Esto requiere permisos de raíz de Linux.

    Actualice o introduzca las siguientes directivas con estos valores:

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA SSLProtocol TLSv1.2 TLSv1.3

    Guarde el archivo.

    Habilite el módulo SSL y la configuración predeterminada del sitio SSL:

    $ sudo a2enmod ssl $ sudo a2ensite default-ssl
    Ubuntu 20.04 LTS

    Localice el archivo SSL para esta plataforma:

    /etc/apache2/mods-available/ssl.conf

    Este archivo contiene las directivas de Apache que definen el funcionamiento del servidor. Las directivas se muestran a la izquierda, seguidas de un valor. Utilice un editor de texto para editar el archivo. Esto requiere permisos de raíz de Linux.

    Actualice o introduzca las siguientes directivas con estos valores:

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA SSLProtocol TLSv1.2 TLSv1.3

    Guarde el archivo.

    Habilite el módulo SSL y la configuración predeterminada del sitio SSL:

    $ sudo a2enmod ssl $ sudo a2ensite default-ssl
    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

  7. Configure un archivo de valores de entorno para su plataforma.

    Amazon Linux

    No hay que hacer nada. Los valores de entorno se introducen en /etc/sysconfig/httpd

    Amazon Linux 2

    Abra el archivo de servicio httpd:

    /lib/systemd/system/httpd.service

    Añada lo siguiente a la sección [Service]:

    EnvironmentFile=/etc/sysconfig/httpd
    CentOS 7

    Abra el archivo de servicio httpd:

    /lib/systemd/system/httpd.service

    Añada lo siguiente a la sección [Service]:

    EnvironmentFile=/etc/sysconfig/httpd
    CentOS 8

    Abra el archivo de servicio httpd:

    /lib/systemd/system/httpd.service

    Añada lo siguiente a la sección [Service]:

    EnvironmentFile=/etc/sysconfig/httpd
    Red Hat 7

    Abra el archivo de servicio httpd:

    /lib/systemd/system/httpd.service

    Añada lo siguiente a la sección [Service]:

    EnvironmentFile=/etc/sysconfig/httpd
    Red Hat 8

    Abra el archivo de servicio httpd:

    /lib/systemd/system/httpd.service

    Añada lo siguiente a la sección [Service]:

    EnvironmentFile=/etc/sysconfig/httpd
    Ubuntu 16.04 LTS

    No hay que hacer nada. Los valores de entorno se introducen en /etc/sysconfig/httpd

    Ubuntu 18.04 LTS

    No hay que hacer nada. Los valores de entorno se introducen en /etc/sysconfig/httpd

    Ubuntu 20.04 LTS

    No hay que hacer nada. Los valores de entorno se introducen en /etc/sysconfig/httpd

    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

  8. En el archivo que almacena las variables de entorno de su plataforma, defina una variable de entorno que contenga las credenciales del usuario de criptografía (CU):

    Amazon Linux

    Utilice un editor de texto para editar el /etc/sysconfig/httpd.

    • Si usa SDK 3 de cliente

      n3fips_password=<CU user name>:<password>
    • Si usa SDK 5 de cliente

      CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    Amazon Linux 2

    Utilice un editor de texto para editar el /etc/sysconfig/httpd.

    • Si usa SDK 3 de cliente

      n3fips_password=<CU user name>:<password>
    • Si usa SDK 5 de cliente

      CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    CentOS 7

    Utilice un editor de texto para editar el /etc/sysconfig/httpd.

    • Si usa SDK 3 de cliente

      n3fips_password=<CU user name>:<password>
    • Si usa SDK 5 de cliente

      CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    CentOS 8

    Utilice un editor de texto para editar el /etc/sysconfig/httpd.

    CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    Red Hat 7

    Utilice un editor de texto para editar el /etc/sysconfig/httpd.

    • Si usa SDK 3 de cliente

      n3fips_password=<CU user name>:<password>
    • Si usa SDK 5 de cliente

      CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    Red Hat 8

    Utilice un editor de texto para editar el /etc/sysconfig/httpd.

    CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    nota

    El SDK 5 de cliente introduce la variable de entorno CLOUDHSM_PIN para almacenar las credenciales del CU.

    Ubuntu 16.04 LTS

    Utilice un editor de texto para editar el /etc/apache2/envvars.

    export n3fips_password=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    Ubuntu 18.04 LTS

    Utilice un editor de texto para editar el /etc/apache2/envvars.

    export CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    nota

    El SDK 5 de cliente introduce la variable de entorno CLOUDHSM_PIN para almacenar las credenciales del CU. SDK 3 de cliente introduce la variable de entorno n3fips_password para almacenar las credenciales de CU. El SDK 5 de cliente admite ambas variables de entorno, pero recomendamos utilizar CLOUDHSM_PIN.

    Ubuntu 20.04 LTS

    Utilice un editor de texto para editar el /etc/apache2/envvars.

    export CLOUDHSM_PIN=<CU user name>:<password>

    Sustituya <CU user name> y <password> por las credenciales del usuario de criptografía.

    nota

    El SDK 5 de cliente introduce la variable de entorno CLOUDHSM_PIN para almacenar las credenciales del CU. SDK 3 de cliente introduce la variable de entorno n3fips_password para almacenar las credenciales de CU. El SDK 5 de cliente admite ambas variables de entorno, pero recomendamos utilizar CLOUDHSM_PIN.

    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

  9. Inicie el servidor web Apache.

    Amazon Linux
    $ sudo systemctl daemon-reload $ sudo service httpd start
    Amazon Linux 2
    $ sudo systemctl daemon-reload $ sudo service httpd start
    CentOS 7
    $ sudo systemctl daemon-reload $ sudo service httpd start
    CentOS 8
    $ sudo systemctl daemon-reload $ sudo service httpd start
    Red Hat 7
    $ sudo systemctl daemon-reload $ sudo service httpd start
    Red Hat 8
    $ sudo systemctl daemon-reload $ sudo service httpd start
    Ubuntu 16.04 LTS
    $ sudo service apache2 start
    Ubuntu 18.04 LTS
    $ sudo service apache2 start
    Ubuntu 20.04 LTS
    $ sudo service apache2 start
    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

  10. (Opcional) Configure su plataforma para iniciar Apache en el arranque.

    Amazon Linux
    $ sudo chkconfig httpd on
    Amazon Linux 2
    $ sudo chkconfig httpd on
    CentOS 7
    $ sudo chkconfig httpd on
    CentOS 8
    $ systemctl enable httpd
    Red Hat 7
    $ sudo chkconfig httpd on
    Red Hat 8
    $ systemctl enable httpd
    Ubuntu 16.04 LTS
    $ sudo systemctl enable apache2
    Ubuntu 18.04 LTS
    $ sudo systemctl enable apache2
    Ubuntu 20.04 LTS
    $ sudo systemctl enable apache2
    Ubuntu 22.04 LTS

    La compatibilidad con el motor dinámico de OpenSSL aún no está disponible.

Después de actualizar la configuración del servidor web, vaya a Paso 4: habilitar el tráfico HTTPS y verificar el certificado.

Paso 4: habilitar el tráfico HTTPS y verificar el certificado

Después de configurar el servidor web para la descarga de SSL/TLS con AWS CloudHSM, añada la instancia del servidor web a un grupo de seguridad que permita el tráfico HTTPS entrante. Esto permite a los clientes, como, por ejemplo, navegadores web, establecer una conexión HTTPS con su servidor web. A continuación, establezca una conexión HTTPS con su servidor web y compruebe que usa el certificado que configuró para la descarga de SSL/TLS con AWS CloudHSM.

Habilitación de las conexiones HTTPS entrantes

Para conectarse a su servidor web desde un cliente (como, por ejemplo, un navegador web), cree un grupo de seguridad que permita conexiones HTTPS entrantes. En concreto, debería permitir conexiones TCP entrantes en el puerto 443. Asigne este grupo de seguridad a su servidor web.

Para crear un grupo de seguridad para HTTPS y asignarlo a su servidor web
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. Elija Security Groups en el panel de navegación.

  3. Elija Crear grupo de seguridad.

  4. En Create Security Group (Crear grupo de seguridad), haga lo siguiente:

    1. Para Security group name (Nombre del grupo de seguridad), escriba un nombre para el grupo de seguridad que está creando.

    2. De manera opcional, escriba una descripción del grupo de seguridad que está creando.

    3. Para VPC, elija la VPC que contiene la instancia de su servidor web Amazon EC2.

    4. Seleccione Add Rule (Añadir regla).

    5. Para tipo, seleccione HTTPS en la ventana desplegable.

    6. Para Origen, introduzca una ubicación de origen.

    7. Elija Crear grupo de seguridad.

  5. En el panel de navegación, seleccione Instances (Instancia[s]).

  6. Seleccione la casilla de verificación junto a la instancia del servidor web.

  7. Seleccione las Acciones en el menú desplegable que se encuentra en la parte superior de la página. Seleccione Seguridad, a continuación, Cambiar grupos de seguridad.

  8. Para Grupos de seguridad asociados, seleccione el cuadro de búsqueda y elija el grupo de seguridad que creó para HTTPS. A continuación, elija Añadir grupos de seguridad.

  9. Seleccione Guardar.

Verificación del uso del certificado configurado por parte de HTTPS

Después de añadir el servidor web a un grupo de seguridad, puede verificar que la descarga de SSL/TLS utiliza su certificado autofirmado. Puede hacerlo mediante un navegador web o con una herramienta como OpenSSL s_client.

Para verificar la descarga de SSL/TLS con un navegador web
  1. Utilice un navegador web para conectarse a su servidor web mediante el nombre de DNS público o la dirección IP del servidor. Asegúrese de que la dirección URL en la barra de direcciones comienza con https://. Por ejemplo, https://ec2-52-14-212-67.us-east-2.compute.amazonaws.com/.

    sugerencia

    Puede utilizar un servicio DNS como, por ejemplo, Amazon Route 53, para dirigir el nombre de dominio de su sitio web (por ejemplo, https://www.ejemplo.com/) a su servidor web. Para obtener más información, consulte Direccionamiento del tráfico a una instancia de Amazon EC2 en la Guía para desarrolladores de Amazon Route 53 o en la documentación para su servicio DNS.

  2. Utilice el navegador web para ver el certificado del servidor web. Para más información, consulte los siguientes temas:

    Otros navegadores web pueden tener características similares que puede utilizar para ver el certificado del servidor web.

  3. Asegúrese de que el certificado SSL/TLS es el que ha configurado para que utilice el servidor web.

Para verificar la descarga de SSL/TLS con OpenSSL s_client
  1. Ejecute el siguiente comando OpenSSL para conectarse a su servidor web a través de HTTPS. Sustituya <server name> por el nombre de DNS público o la dirección IP de su servidor web.

    openssl s_client -connect <server name>:443
    sugerencia

    Puede utilizar un servicio DNS como, por ejemplo, Amazon Route 53, para dirigir el nombre de dominio de su sitio web (por ejemplo, https://www.ejemplo.com/) a su servidor web. Para obtener más información, consulte Direccionamiento del tráfico a una instancia de Amazon EC2 en la Guía para desarrolladores de Amazon Route 53 o en la documentación para su servicio DNS.

  2. Asegúrese de que el certificado SSL/TLS es el que ha configurado para que utilice el servidor web.

Ahora tiene un sitio web que se protege con HTTPS. La clave privada del servidor web está almacenada en un HSM en su clúster de AWS CloudHSM.

Para agregar un equilibrador de carga, consulte Agregar un equilibrador de carga con Elastic Load Balancing para AWS CloudHSM (opcional).