AWS Certificate Manager
Servicio que aprovisiona, gestiona y renueva automáticamente certificados SSL/TLS, permitiendo habilitar HTTPS en CloudFront y ALB con certificados gratuitos
Descripción general
AWS Certificate Manager (ACM) es un servicio que proporciona la emisión, gestión, despliegue y renovación automática de certificados SSL/TLS. Los certificados públicos emitidos por ACM son gratuitos y pueden asociarse con un solo clic a servicios de AWS como CloudFront, Elastic Load Balancing y API Gateway. Tras confirmar la propiedad del dominio mediante validación DNS o por correo electrónico, el certificado se emite automáticamente y se renueva antes de su vencimiento, previniendo interrupciones del servicio por certificados expirados.
Flujo de emisión de certificados y mecanismo de validación DNS
Para emitir un certificado público con ACM, primero se crea una solicitud especificando los nombres de dominio objetivo (por ejemplo: example.com, *.example.com). Se selecciona validación DNS o por correo electrónico para demostrar la propiedad del dominio, siendo la validación DNS fuertemente recomendada. Con la validación DNS, basta con añadir un registro CNAME especificado por ACM al DNS del dominio para completar la verificación, y mientras este registro exista, la renovación automática del certificado también se realiza automáticamente. Si se utiliza Route 53, el registro CNAME puede añadirse con un solo clic desde la consola de ACM. La validación por correo electrónico envía un correo de confirmación a la dirección del administrador del dominio, requiriendo aprobación por correo en cada renovación, lo que aumenta la carga operativa. Emitir un certificado wildcard (*.example.com) elimina la necesidad de gestionar certificados individuales para cada subdominio. Los certificados emitidos por ACM están firmados por Amazon Trust Services como autoridad certificadora (CA) y son confiables en los principales navegadores y sistemas operativos. Aunque Let's Encrypt también ofrece certificados gratuitos, ACM tiene ventaja en la integración con servicios AWS y la fiabilidad de la renovación automática.
Despliegue de certificados en servicios AWS y operación de renovación automática
Los certificados emitidos con ACM se utilizan asociándolos a distribuciones CloudFront, Application Load Balancer (ALB), Network Load Balancer (NLB) y dominios personalizados de API Gateway. Un error común es que los certificados para CloudFront deben emitirse en la región us-east-1. En ALB y NLB, la configuración estándar es asociar el certificado al listener y realizar la terminación HTTPS en el balanceador de carga. Es posible asociar múltiples certificados a un solo listener, y SNI (Server Name Indication) selecciona automáticamente el certificado apropiado. Libros sobre certificados SSL (Amazon) explican los mecanismos de TLS y las mejores prácticas de gestión de certificados. La renovación automática comienza 60 días antes del vencimiento del certificado, y si el registro CNAME de validación DNS está correctamente configurado, la renovación se completa sin intervención humana. El éxito o fracaso de la renovación puede verificarse en la consola de ACM o mediante eventos de EventBridge, y se recomienda construir un mecanismo de alertas para fallos de renovación.
Certificados privados y uso de certificados en EC2
Con ACM Private CA (Certificate Authority) se pueden emitir certificados privados para uso interno de la organización. Cubre casos de uso que los certificados públicos no pueden abordar, como autenticación mTLS (TLS mutuo) entre microservicios, habilitación de HTTPS en sistemas internos y gestión de certificados para dispositivos IoT. La operación de una CA privada tiene un costo mensual, pero ofrece la ventaja de gestionar centralmente grandes cantidades de certificados. No es posible usar directamente certificados de ACM en servidores web (Nginx, Apache) en instancias EC2. Para terminar HTTPS en EC2, es necesario colocar un ALB delante y asociar el certificado ACM al ALB, o utilizar la integración de ACM para Nitro Enclaves. En la gestión de certificados con CloudFormation, los certificados pueden definirse declarativamente con el recurso AWS::CertificateManager::Certificate, pero la creación del registro CNAME de validación DNS debe definirse por separado como recurso de Route 53. Para compartir el ARN del certificado entre stacks, exportarlo a SSM Parameter Store facilita la referencia entre regiones.