Todos los artículos de SSL SSL y certificados

¿Qué es el protocolo ACME?

ACME (Automated Certificate Management Environment) es el protocolo que hace posibles los certificados SSL gratuitos y automatizados. Es cómo Let’s Encrypt — y tu cliente ACME (GetHTTPS, Certbot, acme.sh) — se comunica realmente con la Autoridad Certificadora.

Definido en RFC 8555, ACME reemplazó el antiguo proceso manual (enviar CSRs por correo a una CA, esperar revisión humana) con un protocolo completamente automatizado y criptográficamente seguro.

Cómo funciona ACME — los 5 pasos

┌──────────┐                              ┌──────────────┐
│  Client   │  ① Account Registration     │  CA Server   │
│ (GetHTTPS)│ ──────────────────────────→  │ (Let's Encrypt)
│           │  ② New Order (domains)       │              │
│           │ ──────────────────────────→  │              │
│           │  ③ Complete Challenges       │              │
│           │ ←─────────────────────────── │              │
│           │ ──────────────────────────→  │              │
│           │  ④ Finalize (send CSR)       │              │
│           │ ──────────────────────────→  │              │
│           │  ⑤ Download Certificate      │              │
│           │ ←─────────────────────────── │              │
└──────────┘                              └──────────────┘

Paso 1: Registro de cuenta

El cliente genera un par de claves de cuenta ACME y registra la clave pública con la CA. Esta clave te identifica en futuras solicitudes — cada mensaje ACME se firma con ella.

Sin correo electrónico, sin contraseña, sin información personal requerida.

Paso 2: Nueva orden

El cliente envía una lista de nombres de dominio para los que quiere un certificado. La CA crea una «orden» y devuelve un conjunto de «autorizaciones» — una por dominio — cada una con desafíos que completar.

Paso 3: Completar desafíos

Para cada dominio, el cliente debe probar el control. La CA ofrece tipos de desafío:

DesafíoCómo funcionaCaso de uso
HTTP-01Colocar un archivo en /.well-known/acme-challenge/Más común, más simple
DNS-01Añadir un registro TXT a _acme-challenge.domainComodines, sin puerto 80
TLS-ALPN-01Responder en el puerto 443 con un certificado TLS especialCuando el puerto 80 está bloqueado, sin acceso DNS

El cliente completa el desafío, luego le dice a la CA que verifique. La CA comprueba desde sus servidores — si el desafío pasa, la autorización se marca como válida.

Paso 4: Finalizar (enviar CSR)

Después de que todos los dominios estén autorizados, el cliente envía un CSR (Certificate Signing Request) que contiene la clave pública para el certificado. La CA lo firma y crea el certificado.

Paso 5: Descargar certificado

El cliente descarga la cadena de certificados firmada — tu certificado + el certificado de la CA intermedia. Listo.

Modelo de seguridad de ACME

Cada solicitud ACME se firma con JWS (JSON Web Signature) usando la clave de la cuenta. Esto previene:

  • Ataques de repetición — cada solicitud tiene un nonce único
  • Manipulación — la firma cubre todo el cuerpo de la solicitud
  • Suplantación — solo el titular de la clave de la cuenta puede hacer solicitudes

La clave de la cuenta nunca sale del cliente. Con GetHTTPS, se genera en tu navegador vía la Web Crypto API.

Cómo GetHTTPS usa ACME

GetHTTPS implementa el protocolo ACME completo en JavaScript ejecutándose en tu navegador:

  1. Clave de cuenta generada con crypto.subtle.generateKey() (Web Crypto API)
  2. Clave del certificado generada de la misma manera
  3. Mensajes ACME firmados con crypto.subtle.sign()
  4. CSR construido con la librería pkijs
  5. Comunicación directa HTTPS con acme-v02.api.letsencrypt.org

Sin proxy del lado del servidor, sin middleware. Tu navegador habla directamente con la API ACME de Let’s Encrypt. Esto es único — la mayoría de los clientes ACME se ejecutan en un servidor.

Clientes ACME comparados

ClienteSe ejecuta enACME v2Renovación automáticaLenguaje
GetHTTPSNavegadorNo, manualJavaScript
CertbotCLI del servidorPython
acme.shCLI del servidorShell
CaddyServidor webGo
TraefikProxy inversoGo
LegoLibrería CLIGo

Comparación completa →

CAs que soportan ACME

ACME fue creado por Let’s Encrypt pero ahora es un estándar abierto usado por múltiples CAs:

CAURL del directorio ACME¿Gratis?
Let’s Encryptacme-v02.api.letsencrypt.org/directory
ZeroSSLacme.zerossl.com/v2/DV90Limitado gratis
Buypassapi.buypass.com/acme/directory
Google Trust ServicesVía Google Cloud ACME
DigiCertEndpoint ACME empresarialDe pago
SectigoEndpoint ACME empresarialDe pago

Preguntas frecuentes

¿ACME es lo mismo que Let’s Encrypt?

No. ACME es el protocolo (RFC 8555). Let’s Encrypt es una Autoridad Certificadora que usa ACME. Otras CAs (ZeroSSL, Buypass, Google) también soportan ACME. Piénsalo como HTTP vs Google — HTTP es el protocolo, Google es un servicio que lo usa.

¿Puedo implementar mi propio cliente ACME?

Sí. El protocolo está completamente especificado en RFC 8555. GetHTTPS es un ejemplo de implementación basada en navegador. Existen librerías para la mayoría de los lenguajes (certbot para Python, lego para Go, acme.js para JavaScript).

¿Qué es ACME v2?

ACME v2 es la versión actual (RFC 8555), que añadió soporte para certificados comodín y reemplazó el protocolo borrador v1. Todos los clientes ACME modernos usan v2. Let’s Encrypt cerró el endpoint v1 en 2021.

¿Qué pasa si el servidor ACME está caído?

Los certificados existentes siguen funcionando (no llaman a casa). Simplemente no puedes emitir ni renovar hasta que el servidor se recupere. Let’s Encrypt tiene un alto tiempo de actividad y una infraestructura redundante.

Artículos relacionados

SSL y certificados 2026-05-07
¿Qué es Let's Encrypt?
Let's Encrypt es una Autoridad Certificadora gratuita y sin ánimo de lucro que ha emitido más de mil millones de certificados SSL. Aprende cómo funciona, sus límites de tasa y cómo usarla con GetHTTPS.
Primeros pasos 2026-05-08
Desafío HTTP-01: cómo funciona y cómo completarlo
HTTP-01 es la forma más sencilla de demostrar la propiedad del dominio para un certificado SSL. Coloca un archivo en tu servidor, Let's Encrypt lo verifica y tu certificado se emite.
Primeros pasos 2026-05-08
Desafío DNS-01: cómo funciona y cómo completarlo
La validación DNS-01 demuestra la propiedad del dominio añadiendo un registro TXT a tu DNS. Necesaria para certificados comodín. Cubre la configuración en Cloudflare, Route 53, GoDaddy, Namecheap y más.
SSL y certificados 2026-05-07
Cómo funciona SSL/TLS: el handshake TLS explicado
Un recorrido visual del handshake TLS: cómo tu navegador y un servidor establecen una conexión cifrada en milisegundos. Cubre TLS 1.2, TLS 1.3, reanudación de sesión y secreto perfecto hacia adelante.
Obtén un certificado SSL gratuito en tu navegador
Sin instalación, sin cuenta. Tu clave privada nunca sale de tu dispositivo.
Obtener certificado