En este tutorial, aprenderás cómo instalar un certificado SSL en AWS (Amazon Web Services). En AWS no instalas un certificado en un solo servidor como lo harías con Apache o Nginx. En cambio, importas el certificado una vez en un almacén de certificados y luego lo asocias a un servicio administrado (un balanceador de carga, CloudFront o API Gateway) que finaliza la conexión TLS por ti. Esta guía cubre AWS Certificate Manager (ACM), el almacén de certificados heredado de IAM y Elastic Load Balancing (ELB).
Antes de la instalación, necesitas generar una Solicitud de Firma de Certificado (CSR) y enviarla a la Autoridad Certificadora para su aprobación. Si no has completado este paso, comienza con la primera parte de este tutorial. Si ya tienes tus archivos de certificado SSL, ve directamente a la guía de instalación a continuación.
Cómo generar un código CSR en AWS
Al solicitar un certificado SSL, un paso esencial es enviar el código CSR a tu proveedor de SSL, también llamado Autoridad Certificadora. El CSR contiene información codificada sobre tu nombre de dominio y organización. No puedes obtener un certificado SSL firmado sin proporcionar este bloque de código. Tienes dos opciones:
- Usa nuestro Generador de CSR para crear el CSR automáticamente.
- Genera el CSR manualmente. La mejor opción es crear el CSR en el mismo servidor donde se ejecutará tu certificado SSL. Elige el tutorial para tu plataforma:
Si solo tienes un balanceador de carga y no un servidor web de origen donde ejecutar el comando, puedes crear tu CSR y clave privada con la herramienta OpenSSL:
openssl req -new -newkey rsa:2048 -nodes -keyout yoursite.key -out example.csr
Nota: reemplaza yoursite con el nombre de dominio que deseas proteger. Este comando también escribe tu clave privada (yoursite.key); guárdala en un lugar seguro, ya que la necesitarás más adelante para importar el certificado.
Después de ejecutar el comando, OpenSSL escribe el CSR en example.csr. Abre ese archivo y copia todo el bloque, incluyendo las líneas —–BEGIN CERTIFICATE REQUEST—– y —–END CERTIFICATE REQUEST—–. Pegarás este código durante la activación de tu certificado SSL.
Prepara todos los archivos del certificado
Antes de comenzar la instalación, asegúrate de tener todos los archivos de certificado necesarios. Después de que la Autoridad Certificadora firme tu certificado SSL, envía los archivos de instalación a tu bandeja de entrada. Esto es lo que necesitas:
- Tu archivo de certificado principal, emitido para el nombre de dominio que deseas proteger.
- El paquete de la CA (la cadena de certificados intermedios) de tu Autoridad Certificadora.
- Tu clave privada.
Tu certificado SSL y el paquete de la CA llegan en el archivo ZIP que te envió la CA. La clave privada es la que generaste junto con tu código CSR; permanece en el mismo lugar donde creaste el CSR.
Lo último que debes verificar es el formato de tus archivos. ACM e IAM solo aceptan archivos codificados en PEM, así que asegúrate de que tu certificado, cadena y clave privada estén en formato PEM. PEM es un formato de texto que puede tener varias extensiones de archivo (.pem, .key, .cer, .crt, entre otras); un archivo PEM comienza con una línea como —–BEGIN CERTIFICATE—–. La clave privada debe estar sin cifrar: ACM rechaza una clave protegida por una contraseña o frase de contraseña.
Si recibiste tus archivos en otro formato, como PFX/PKCS#12, convíertelos primero a PEM. Puedes hacerlo con comandos de OpenSSL. Una vez que tus archivos estén en formato PEM, estarás listo para instalar tu certificado.
Instala un certificado SSL en AWS Certificate Manager (ACM)
ACM es el lugar recomendado para almacenar certificados para los servicios administrados de AWS. Puedes importar tu certificado de terceros a través de la consola o la CLI.
Opción A: Importar en la consola de ACM
- Abre la consola de AWS y ve a Certificate Manager. Confirma que estás en la Región correcta (arriba a la derecha). Importa el certificado en la misma Región que el servicio que lo usará. Para CloudFront, usa US East (N. Virginia), us-east-1.
- Elige Import certificate.
- En Certificate body, pega tu certificado principal (el bloque que comienza con —–BEGIN CERTIFICATE—–).
- En Certificate private key, pega tu clave privada sin cifrar (el bloque que comienza con —–BEGIN PRIVATE KEY—– o —–BEGIN RSA PRIVATE KEY—–).
- En Certificate chain, pega tu paquete de la CA (los certificados intermedios).
- Elige Next, agrega las etiquetas que desees, y luego elige Import.
Opción B: Importar con la AWS CLI
Ejecuta el siguiente comando para subir tu certificado a ACM. Observa el prefijo fileb://: indica a la CLI que lea cada archivo como bytes en bruto, que es lo que ACM espera.
aws acm import-certificate
--certificate fileb://example.crt
--private-key fileb://example.key
--certificate-chain fileb://example-bundle.crt
Nota: reemplaza cada nombre de archivo example con el nombre real de tu archivo. Si la importación es exitosa, la CLI devuelve el ARN (Amazon Resource Name) del certificado. Necesitas este identificador para asociar el certificado a un servicio. Aquí está la lista completa de comandos de ACM para gestionar tu certificado más a fondo.
Advertencias importantes:
- Los certificados importados no se renuevan automáticamente. ACM renueva automáticamente solo los certificados que emite. Eres responsable de rastrear la fecha de vencimiento de un certificado importado y de volver a importar uno nuevo antes de que expire (AWS recomienda hacerlo al menos 24 horas antes del vencimiento). Volver a importar en el mismo certificado de ACM conserva las asociaciones de servicio existentes, por lo que el balanceador de carga o la distribución sigue usándolo sin cambios adicionales.
- La Región importa. Un certificado de ACM es regional. Impórtalo en la misma Región que el balanceador de carga o servicio que lo usará. CloudFront solo acepta certificados de us-east-1.
Instala un certificado SSL en AWS IAM (método heredado)
El almacén de certificados de IAM es el método más antiguo, y AWS recomienda ACM para nuevos despliegues. Usa IAM solo cuando un servicio o Región no admita ACM, o cuando necesites específicamente el almacén de IAM (por ejemplo, ciertas configuraciones de CloudFront, donde la ruta debe comenzar con /cloudfront/). Sube el certificado a IAM con:
aws iam upload-server-certificate
--server-certificate-name certificate-name
--certificate-body file://example.crt
--certificate-chain file://example-bundle.crt
--private-key file://example.key
Reemplaza los valores como se muestra a continuación:
- –server-certificate-name: un nombre personalizado fácil de recordar, por ejemplo tu nombre de dominio. Usa solo caracteres alfanuméricos en mayúsculas y minúsculas; no se permiten espacios.
- –certificate-body: el nombre del archivo de tu certificado SSL principal.
- –certificate-chain: el nombre del archivo de tu paquete de la CA.
- –private-key: el nombre del archivo de tu clave privada.
El certificado, la clave privada y la cadena deben estar todos codificados en PEM, y la clave privada debe coincidir con el certificado. Si la subida es exitosa, la CLI devuelve los metadatos del certificado de servidor, incluyendo su ruta, nombre, ID, ARN, fecha de subida y fecha de vencimiento. Para más ayuda sobre la gestión y solución de problemas de SSL, consulta la guía oficial de Amazon.
Asocia el certificado en ELB (Elastic Load Balancing)
Importar el certificado en ACM o IAM aún no lo pone en servicio. El certificado se activa solo cuando asocias su ARN a un servicio. Esta sección asume que ya has importado el certificado y quieres crear o actualizar los listeners HTTPS en un balanceador de carga existente. Necesitarás el ARN de tu certificado y el nombre o ARN del balanceador de carga.
Classic Load Balancer
Usa el siguiente comando para crear un listener HTTPS en un Classic Load Balancer y asignarle el certificado:
aws elb create-load-balancer-listeners
--load-balancer-name my-load-balancer
--listeners "Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80,SSLCertificateId=ARN"
Reemplaza ARN con el ARN de tu certificado de ACM o IAM. Si ya tienes un listener HTTPS y solo quieres cambiar a un nuevo certificado, usa:
aws elb set-load-balancer-listener-ssl-certificate
--load-balancer-name my-load-balancer
--load-balancer-port 443
--ssl-certificate-id NewARN
Reemplaza NewARN con el ARN del nuevo certificado. Aquí está la gama completa de comandos de ELB, y la guía oficial de Amazon sobre listeners HTTPS para Classic Load Balancer.
Application Load Balancer
Ejecuta el siguiente comando para crear un listener HTTPS en un Application Load Balancer. El valor –ssl-policy a continuación selecciona una política de seguridad que admite TLS 1.3 y TLS 1.2:
aws elbv2 create-listener
--load-balancer-arn my-load-balancer-arn
--protocol HTTPS
--port 443
--certificates CertificateArn=my-certificate-arn
--ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06
--default-actions Type=forward,TargetGroupArn=my-target-group-arn
Puedes encontrar los valores de my-load-balancer-arn y my-target-group-arn ejecutando:
aws elbv2 describe-target-groups
Esto revela los balanceadores de carga y grupos de destino relevantes en tu cuenta. Para añadir un nuevo certificado a un listener HTTPS existente, usa:
aws elbv2 modify-listener
--listener-arn my-https-listener-arn
--certificates CertificateArn=my-new-certificate-arn
Puedes encontrar el valor de my-https-listener-arn con:
aws elbv2 describe-listeners
--load-balancer-arn my-load-balancer-arn
Consulta la referencia de comandos de elbv2 para gestionar tu Application Load Balancer más a fondo.
Prueba tu instalación SSL
Navega a la versión HTTPS de tu dominio y verifica que el candado esté presente. Haz clic en él para inspeccionar los detalles del certificado. Para una prueba más profunda, usa nuestro SSL Checker: escanea tu instalación y crea un informe instantáneo. También puedes confirmar el certificado desde la línea de comandos:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Esto imprime el emisor y las fechas de validez del certificado que está sirviendo el balanceador de carga. Si importaste un nuevo certificado pero aún ves el antiguo, confirma que el listener apunte al nuevo ARN y que estés probando la Región y el endpoint correctos.
Preguntas frecuentes
No lo instalas en un solo servidor. Importas el certificado en AWS Certificate Manager (ACM), y luego asocias el ARN resultante a un servicio administrado que finaliza la conexión TLS, como un Application o Classic Load Balancer, una distribución de CloudFront o un dominio personalizado de API Gateway.
No. ACM renueva automáticamente solo los certificados que emite. Un certificado de terceros importado debe volver a emitirse y volver a importarse antes de que expire. Volver a importarlo en el mismo certificado de ACM conserva sus asociaciones de servicio, por lo que el balanceador de carga sigue sirviendo el certificado renovado sin cambios adicionales.
Usa ACM. El almacén de certificados de IAM es un método heredado que AWS mantiene principalmente por compatibilidad con versiones anteriores y para casos que ACM no cubre. Para la mayoría de las configuraciones, incluidos los balanceadores de carga y CloudFront, ACM es la opción recomendada.
La razón más común es que la clave está cifrada. ACM solo acepta una clave privada sin cifrar, codificada en PEM, que coincida con el certificado. Elimina primero la frase de contraseña y luego importa. Asegúrate de que las tres partes (certificado, cadena y clave) estén codificadas en PEM.
Impórtalo en la misma Región que el balanceador de carga o servicio que lo usará, ya que los certificados de ACM son regionales. CloudFront es la excepción: solo acepta certificados importados en US East (N. Virginia), us-east-1.
Ahorre un 10% en certificados SSL al realizar su pedido hoy mismo.
Emisión rápida, cifrado potente, 99,99% de confianza del navegador, asistencia dedicada y garantía de devolución del dinero en 25 días. Código del cupón: SAVE10


