Enviado por admin el
Durante años, obtener un certificado TLS válido para una dirección IP pública fue un problema sin solución sencilla. Let's Encrypt, la autoridad de certificación gratuita más utilizada del mundo, solo emitía certificados para nombres de dominio. Quien necesitaba HTTPS sobre una IP tenía que recurrir a ZeroSSL, a certificados autofirmados, o simplemente vivir sin TLS. Eso cambió en 2025.
Let's Encrypt introdujo soporte para certificados con IP como Subject Alternative Name (SAN), pero con una condición: solo se emiten bajo el perfil shortlived, lo que significa que el certificado tiene una validez de aproximadamente seis días, no noventa. La razón es técnica y de política: las IPs son menos estables que los dominios, pueden cambiar de propietario sin previo aviso, y un certificado de larga duración para una IP representa un riesgo mayor. Los certificados de corta duración además no necesitan contener información de revocación, lo que los hace más ligeros y más seguros por diseño.
Para obtener un certificado así, el método de validación debe ser http-01 o tls-alpn-01. El método DNS-01 no está permitido para IPs, porque no es posible probar el control sobre una dirección IP mediante registros DNS. Esto implica que el puerto 80 o el 443 de la IP debe estar accesible desde los servidores de validación de Let's Encrypt.
Con Certbot 5.3.0 (publicado en febrero de 2026) el soporte es nativo mediante el flag --ip-address combinado con --preferred-profile shortlived. El comando básico con el plugin standalone sería:
certbot certonly --standalone \ --ip-address 203.0.113.45 \ --preferred-profile shortlived
Antes de que Certbot incorporara este soporte, la alternativa más utilizada era lego, un cliente ACME escrito en Go que implementó el perfil shortlived antes que Certbot. Con lego el comando equivalente es:
lego -d 203.0.113.45 --http --http.webroot /var/www/html \ -m tu@email.com run --profile shortlived
El punto crítico de esta nueva funcionalidad es la renovación automática. Con solo seis días de validez, renovar manualmente una vez por semana es inviable a largo plazo. La automatización mediante cron o systemd timer no es opcional: es parte del diseño. Certbot gestiona la renovación automáticamente para los certificados que ha emitido. Con lego se recomienda configurar Le_RenewalDays=4 para renovar cuando el certificado lleva cuatro días de vida, dejando margen antes del vencimiento.
Esta novedad es especialmente relevante para entornos donde no se dispone de un nombre de dominio: servidores de prueba, infraestructuras internas expuestas temporalmente, servicios VoIP accesibles por IP, o cualquier caso donde el DNS no es parte de la ecuación. La única condición que no cambia es que la IP debe ser pública y enrutable desde los servidores de Let's Encrypt.
Comentarios recientes