0Pricing
Cryptology Academy · Lección

Let's Encrypt y automatización del protocolo ACME

Automatice la emisión y renovación de certificados mediante el protocolo ACME con Certbot y otros clientes.

Let's Encrypt y automatización del protocolo ACME es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Introducción a Let's Encrypt

Let's Encrypt es una autoridad de certificación gratuita, automatizada y abierta, operada por Internet Security Research Group (ISRG), que se lanzó en fase beta pública en diciembre de 2015. Ha emitido más de 3 mil millones de certificados y ha aumentado considerablemente la adopción de HTTPS en la web al eliminar el coste y la complejidad de obtener certificados TLS confiables públicamente.

Descripción general del protocolo ACME

El protocolo Automated Certificate Management Environment (ACME), estandarizado como RFC 8555 en 2019, define cómo los clientes demuestran automáticamente la propiedad de un dominio y reciben certificados de las CA. ACME sustituye los procesos manuales de validación de dominios por un intercambio automatizado verificado criptográficamente, lo que permite gestionar de forma automática todo el ciclo de vida de los certificados.

Desafío HTTP-01

El desafío HTTP-01 valida la propiedad de un dominio y requiere que el cliente ACME coloque un archivo de token específico en "http://DOMAIN/.well-known/acme-challenge/TOKEN". La CA obtiene esta URL para verificar el token. HTTP-01 es sencillo de implementar, pero requiere que el puerto 80 sea accesible y no puede utilizarse para certificados comodín.

Desafío DNS-01

El desafío DNS-01 valida la propiedad de un dominio y requiere que el cliente ACME cree un registro DNS TXT en "_acme-challenge.DOMAIN" con un valor específico. La CA consulta el DNS para verificar el registro. DNS-01 es el único tipo de desafío compatible con la emisión de certificados comodín ("*.example.com") y funciona incluso cuando los servidores web se encuentran detrás de firewalls.

Desafío TLS-ALPN-01

El desafío TLS-ALPN-01 valida la propiedad de un dominio en la capa TLS mediante un identificador de protocolo ALPN personalizado, "acme-tls/1". El cliente ACME sirve temporalmente un certificado autofirmado con el token del desafío en una extensión especial a través del puerto 443. Este desafío funciona sin un servidor web en ejecución y es compatible con entornos con balanceo de carga.

Cliente de referencia Certbot

Certbot es el cliente ACME de referencia de Electronic Frontier Foundation para Let's Encrypt. Automatiza todo el ciclo de vida de los certificados: validación del dominio, emisión del certificado y renovación automática. Certbot incluye complementos para Apache y nginx que configuran automáticamente los ajustes de TLS. Instálelo mediante "snap install --classic certbot" en las distribuciones modernas de Linux.

Clientes ACME alternativos

Existen muchos clientes ACME además de Certbot para distintos casos de uso. acme.sh es un cliente ACME implementado como un script de shell puro, utilizado ampliamente en entornos ligeros. El servidor web Caddy incorpora compatibilidad con ACME y renueva los certificados automáticamente. Traefik, utilizado en entornos de contenedores, gestiona ACME mediante su configuración certificatesResolvers para cargas de trabajo en contenedores.

Automatización de la renovación de certificados

Los certificados de Let's Encrypt tienen un periodo de validez de 90 días por diseño, lo que fomenta la automatización y reduce el tiempo de exposición de las claves privadas comprometidas. Certbot instala un temporizador de systemd o un trabajo de cron que ejecuta "certbot renew" dos veces al día y renueva cualquier certificado al que le queden menos de 30 días para caducar. La renovación manual es un antipatrón que provoca interrupciones del servicio.

Límites de frecuencia de Let's Encrypt

Let's Encrypt aplica límites de frecuencia para evitar abusos. Los principales límites son 50 certificados por dominio registrado a la semana y 5 certificados duplicados a la semana. Los intentos de validación fallidos (5 por nombre de host cada hora) también están sujetos a límites de frecuencia. Durante el desarrollo, el entorno de pruebas de Let's Encrypt proporciona una emisión ilimitada de certificados contra una CA de prueba que no cuenta con confianza pública.

Certificados multidominio y comodín

Un único certificado ACME puede cubrir varios dominios (nombres alternativos del sujeto). "certbot --domains example.com,www.example.com,api.example.com" emite un certificado con tres SAN. Los certificados comodín ("*.example.com") requieren validación DNS-01 y cubren todos los subdominios de un solo nivel. Los comodines no cubren el dominio raíz (example.com), por lo que se necesita un SAN adicional.

ACME para PKI interna

El protocolo ACME no se limita a Let's Encrypt. Las CA internas, como Step-CA (smallstep), EJBCA y HashiCorp Vault, pueden exponer endpoints ACME para automatizar los certificados internos. Esto permite aplicar a la infraestructura mTLS interna y a los servicios privados la misma gestión automatizada del ciclo de vida de los certificados que se utiliza para los servicios públicos.

Comprobación de los desafíos ACME

¿Qué tipo de desafío ACME se requiere para emitir un certificado comodín como "*.example.com"?

Resumen de la lección: Let's Encrypt y ACME

Let's Encrypt proporciona certificados gratuitos mediante el protocolo ACME (RFC 8555). Los desafíos HTTP-01 funcionan para certificados que no son comodín en el puerto 80. DNS-01 permite certificados comodín al demostrar el control de la zona DNS. TLS-ALPN-01 funciona sin un servidor web. Certbot y acme.sh automatizan todo el ciclo de vida. Los certificados de 90 días requieren automatización. Los límites de frecuencia hacen necesario utilizar el entorno de pruebas durante las pruebas.

Preguntas frecuentes

¿La lección «Let's Encrypt y automatización del protocolo ACME» es gratis?

Sí — el texto completo de «Let's Encrypt y automatización del protocolo ACME» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Let's Encrypt y automatización del protocolo ACME»?

Automatice la emisión y renovación de certificados mediante el protocolo ACME con Certbot y otros clientes. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Let's Encrypt y automatización del protocolo ACME»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Fundamentos de la línea de comandos de OpenSSL
  2. Creación y gestión de cadenas de certificados
  3. OCSP Stapling y Certificate Transparency
  4. Let's Encrypt y automatización del protocolo ACME
← Volver a Cryptology Academy