Uso de SSL - AWS OpsWorks

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de SSL

importante

El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los existentes. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en AWS Re:post o a través de Premium AWS Support.

Para utilizar SSL con su aplicación, primero debe obtener un certificado de servidor digital de una entidad de certificación (CA). Para simplificar, en este tutorial se crea un certificado y se firma automáticamente. Los certificados autofirmados son útiles para fines de pruebas y aprendizaje, pero siempre se debe utilizar un certificado autofirmado por una entidad de certificación (CA) para pilas de producción.

En este tutorial hará lo siguiente:

  1. Instale y configure OpenSSL.

  2. Crear un clave privada.

  3. Crear una solicitud de firma de certificado.

  4. Generar un certificado autofirmado.

  5. Modificar la aplicación con la información del certificado.

importante

Si la aplicación utiliza SSL, le recomendamos que deshabilite SSLv3, si es posible, en las capas del servidor de aplicaciones como respuesta a las vulnerabilidades que se describen en CVE-2014-3566. Si la pila incluye una capa Ganglia, debe desactivar SSL v3 también para dicha capa. Los detalles dependerán de la capa concreta; para obtener más información, consulte lo siguiente.

Paso 1: Instalar y configurar OpenSSL

Para crear y cargar certificados de servidor es necesaria una herramienta compatible con los protocolos SSL y TLS. OpenSSL es una herramienta de código abierto que proporciona las funciones criptográficas básicas necesarias para crear un token de RSA y firmarlo con su clave privada.

En el procedimiento siguiente se supone que su equipo aún no tiene OpenSSL instalado.

Para instalar OpenSSL en Linux y Unix
  1. Vaya a OpenSSL: Source, Tarballs.

  2. Descargue la versión más reciente.

  3. Cree el paquete.

Para instalar OpenSSL en Windows
  1. Si Microsoft Visual C++ 2008 Redistributable Package todavía no está instalado en el sistema, descargue el paquete.

  2. Ejecute el instalador y siga las instrucciones que proporciona el Asistente de instalación del paquete redistribuible de Microsoft Visual C++ 2008 para instalarlo.

  3. Vaya a OpenSSL: Binary Distributions, haga clic en la versión de los archivos binarios de OpenSSL adecuados para su entorno y guarde el instalador localmente.

  4. Ejecute el instalador y siga las instrucciones del OpenSSL Setup Wizard (Asistente de instalación de OpenSSL) para instalar los archivos binarios.

Cree una variable de entorno que señale al punto de instalación de OpenSSL abriendo un terminal o una ventana del sistema y utilizando las líneas de comandos siguientes.

  • En Linux y Unix

    export OpenSSL_HOME=path_to_your_OpenSSL_installation
  • En Windows

    set OpenSSL_HOME=path_to_your_OpenSSL_installation

Añada la ruta de los archivos binarios de OpenSSL a la variable de ruta de su equipo abriendo un terminal o una ventana del sistema y utilizando las líneas de comandos siguientes.

  • En Linux y Unix

    export PATH=$PATH:$OpenSSL_HOME/bin
  • En Windows

    set Path=OpenSSL_HOME\bin;%Path%
nota

Los cambios que haga en las variables de entorno mediante estas líneas de comandos solo son válidas para la sesión de línea de comandos abierta.

Paso 2: Crear una clave privada

Necesita una clave privada única para crear la solicitud de firma del certificado (CSR). Cree la clave utilizando la línea de comandos siguiente:

openssl genrsa 2048 > privatekey.pem

Paso 3: Crear una solicitud de firma de certificado

Una solicitud de firma del certificado (CSR) es un archivo que se envía a una entidad de certificación (CA) para solicitar un certificado digital de servidor. Cree la solicitud CSR utilizando la línea de comandos siguiente.

openssl req -new -key privatekey.pem -out csr.pem

El resultado del comando debería ser similar a lo siguiente:

You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank.

La tabla siguiente le puede ayudar a crear la solicitud de certificado.

Datos de la solicitud de certificado
Nombre Descripción Ejemplo
Country Name La abreviatura ISO de dos letras del país. US = Estados Unidos
State or Province Nombre del país o de la región donde se ubica su organización. Este nombre no se puede abreviar. Washington
Locality Name Nombre de la ciudad donde se ubica su organización. Seattle
Organization Name Nombre legal completo de su organización. No abrevie el nombre de la organización. OrganizaciónX
Organizational Unit Información adicional sobre la organización (opcional). Marketing
Common Name Nombre completo de dominio de su CNAME. Recibirá una advertencia de comprobación del nombre de certificado si no se obtiene una coincidencia exacta. www.example.com
Email address Dirección de correo electrónico del administrador del servidor alguien@ejemplo.com
nota

El campo Nombre común suele malinterpretarse y rellenarse incorrectamente. El nombre común es habitualmente el nombre del host más el nombre del dominio. Será algo como "www.ejemplo.com" o "ejemplo.com". Debe crear un CSR con el nombre común correcto.

Paso 4: Enviar el CSR a una autoridad de certificación

Para su uso en producción, obtendrá un certificado de servidor enviando el CSR a una autoridad de certificación (CA), lo cual puede requerir otras credenciales o pruebas de identidad. Si la solicitud se realiza correctamente, la CA devuelve el certificado de identidad firmado digitalmente y quizá un archivo de cadena de certificados. AWS no recomienda ninguna CA concreta. Para obtener una lista parcial de las CA disponibles, consulte los proveedores de entidades de certificación en Wikipedia.

También puede generar un certificado autofirmado que podrá usar con fines de prueba únicamente. En este ejemplo, utilice la línea de comandos siguiente para generar un certificado autofirmado.

openssl x509 -req -days 365 -in csr.pem -signkey privatekey.pem -out server.crt

El resultado tendrá un aspecto similar al siguiente:

Loading 'screen' into random state - done Signature ok subject=/C=us/ST=washington/L=seattle/O=corporationx/OU=marketing/CN=example.com/emailAddress=someone@example.com Getting Private key

Paso 5: Modificar la aplicación

Después de generar el certificado y firmarlo, actualice la aplicación para habilitar SSL y proporcionar la información del certificado. En la página Apps (Aplicaciones), elija una aplicación para abrir la página de detalles y, a continuación, haga clic en Edit App (Editar aplicación). Para habilitar la compatibilidad con SSL, establezca Enable SSL (Habilitar SSL) en Yes (Sí), lo cual muestra las siguientes opciones de configuración.

SSL Certificate (Certificado SSL)

Pegue el contenido del archivo del certificado de clave pública (.crt) en el cuadro. El certificado debería parecerse a lo siguiente:

-----BEGIN CERTIFICATE----- MIICuTCCAiICCQCtqFKItVQJpzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMC dXMxEzARBgNVBAgMCndhc2hpbmd0b24xEDAOBgNVBAcMB3NlYXR0bGUxDzANBgNV BAoMBmFtYXpvbjEWMBQGA1UECwwNRGV2IGFuZCBUb29sczEdMBsGA1UEAwwUc3Rl cGhhbmllYXBpZXJjZS5jb20xIjAgBgkqhkiG9w0BCQEWE3NhcGllcmNlQGFtYXpv ... -----END CERTIFICATE-----
nota

Si utiliza Nginx y tiene un archivo de cadena de certificados, debe anexar el contenido al archivo de certificado de clave pública.

Si está actualizando un certificado existente, haga lo siguiente:

  • Elija Update SSL certificate (Actualizar certificado SSL) para actualizar el certificado.

  • Si el certificado nuevo no coincide con la clave privada existente, elija Update SSL certificate key (Actualizar clave del certificado SSL).

  • Si el certificado nuevo no coincide con la cadena de certificados existente, elija Update SSL certificates (Actualizar certificados SSL).

SSL Certificate Key (Clave del certificado SSL)

Pegue el contenido del archivo de clave privada (archivo .pem) en el cuadro. Debería parecerse a lo siguiente:

----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQC0CYklJY5r4vV2NHQYEpwtsLuMMBhylMrgBShKq+HHVLYQQCL6 +wGIiRq5qXqZlRXje3GM5Jvcm6q0R71MfRIl1FuzKyqDtneZaAIEYniZibHiUnmO /UNqpFDosw/6hY3ONk0fSBlU4ivD0Gjpf6J80jL3DJ4R23Ed0sdL4pRT3QIDAQAB AoGBAKmMfWrNRqYVtGKgnWB6Tji9QrKQLMXjmHeGg95mppdJELiXHhpMvrHtpIyK ... -----END RSA PRIVATE KEY-----
SSL certificates of Certification Authorities (Certificados SSL de entidades de certificación)

Si tiene un archivo de cadena de certificados, pegue el contenido en el cuadro.

nota

Si utiliza Nginx, deje este cuadro en blanco. Si tiene un archivo de cadena de certificados, anéxelo al archivo de certificado de clave pública en SSL Certificate (Certificado SSL).

Después de hacer clic en Save (Guardar), vuelva a implementar la aplicación para actualizar las instancias online.

Para las capas de servidor de aplicaciones integradas, AWS OpsWorks Stacks actualiza automáticamente la configuración del servidor. Una vez finalizada la implementación, puede verificar que la instalación de OpenSSL ha sido correcta del modo siguiente.

Para verificar una instalación de OpenSSL
  1. Vaya a la página Instances (Instancias).

  2. Ejecute la aplicación haciendo clic en la dirección IP de la instancia del servidor de aplicaciones o, si utiliza un balanceador de carga, en la dirección IP del balanceador de carga.

  3. Cambie el prefijo de la dirección IP de http:// a https:// y actualice el explorador para verificar si la página se carga correctamente con SSL.

Los usuarios que tienen las aplicaciones configuradas para ejecutarse en Mozilla Firefox reciben a veces el siguiente error de certificado: SEC_ERROR_UNKNOWN_ISSUER. Este error puede deberse a una funcionalidad de sustitución de certificados de los programas antivirus y antimalware de su organización, a algunos tipos de software de monitorización y filtrado del tráfico de red o a malware. Para obtener más información acerca de cómo solucionar este error, consulte el tema sobre cómo solucionar los códigos de error de seguridad en sitios web seguros en el sitio web de soporte técnico de Mozilla Firefox.

Para todas las demás capas, incluidas las capas personalizadas, AWS OpsWorks Stacks simplemente añade la configuración de SSL a los atributos deploy de la aplicación. Debe implementar una receta personalizada para recuperar la información del objeto de nodo y configurar el servidor adecuadamente.