
Un certificado SSL es un archivo que tu servidor presenta al navegador para demostrar que la web es de quien dice ser y para cifrar todo lo que viaja entre los dos. Sin él, la dirección no puede ir por https:// y Chrome marca la página como «No es seguro». Lo emite una autoridad de certificación (Let's Encrypt, Sectigo, DigiCert…), puede ser gratis, y caduca: desde marzo de 2026 dura como mucho 200 días y desde el 15 de marzo de 2027, 100.
Esto último es lo que más está cambiando y lo que casi nadie explica. Vamos por partes.
Qué es un certificado SSL y qué lleva dentro
Lo de «SSL» es un nombre que se ha quedado. El protocolo SSL hace años que no se usa; lo que cifra tu web hoy es TLS, en sus versiones 1.2 y 1.3. Pero todo el mundo, hostings incluidos, sigue diciendo certificado SSL, y así lo vamos a llamar aquí.
Si abres uno, verás más o menos esto:
- Para qué nombres vale (el campo SAN):
ejemplo.com,www.ejemplo.com, o un comodín como*.ejemplo.com. - Quién lo firma: la autoridad de certificación y su certificado intermedio.
- Desde cuándo y hasta cuándo vale: las fechas notBefore y notAfter. La segunda es la que te tiene que preocupar.
- La clave pública del servidor. La privada se queda en tu servidor y no sale de ahí.
Un detalle que confunde mucho. El certificado garantiza que hablas con el dominio correcto y que nadie lee la conexión por el camino. No dice nada de si la web es honrada. Una web de estafa también puede tener su certificado, y gratis. Por eso Google quitó el candado de la barra de Chrome en 2023 y puso un icono neutro de ajustes (lo explicaron en el blog de Chromium): la gente leía el candado como «web de fiar».
Cómo funciona, en corto
Cuando alguien entra en tu web pasa esto, en unas décimas de segundo:
- El navegador se conecta al puerto 443 y dice qué dominio quiere (eso se llama SNI, y por eso un mismo servidor puede tener cientos de certificados).
- El servidor le manda su certificado y la cadena de intermedios.
- El navegador comprueba la firma hasta llegar a una raíz que ya trae instalada, mira que el nombre coincida y que no esté caducado.
- Si todo cuadra, acuerdan unas claves de sesión y a partir de ahí todo va cifrado.
Si falla el paso 3, sale la pantalla roja. Y fallar, falla más de lo que parece.
Tipos de certificados SSL
Se clasifican de dos maneras: por cuánto comprueba la autoridad sobre ti, y por cuántos nombres cubre.
Por validación
| Tipo | Qué comprueban | Cuánto tarda | Para quién |
|---|---|---|---|
| DV (dominio) | Solo que controlas el dominio (un archivo en la web o un registro DNS) | Minutos | Casi todas las webs, tiendas incluidas |
| OV (organización) | Además, que la empresa existe | De uno a varios días | Empresas que quieren su razón social dentro del certificado |
| EV (validación extendida) | Una revisión más a fondo de la empresa | Días o semanas | Bancos y similares, más por requisito interno que por lo que ve el usuario |
¿Se nota la diferencia para el visitante? Hoy, casi nada. Los navegadores dejaron de pintar en verde el nombre de la empresa con los EV hace años. El cifrado es exactamente el mismo en los tres.
Por cobertura
- De un solo dominio:
ejemplo.comy, normalmente, tambiénwww.ejemplo.com. - Comodín (wildcard):
*.ejemplo.comcubretienda.ejemplo.comoblog.ejemplo.com, pero solo un nivel. No cubrea.b.ejemplo.com, y el dominio raíz se acostumbra a añadir aparte. - Multidominio (SAN): una lista de nombres distintos en el mismo certificado, por ejemplo
ejemplo.comyejemplo.es.
Certificado SSL gratis o de pago
Para la mayoría de webs, el gratis va de cine. Let's Encrypt emite certificados DV sin coste, la mayoría de hostings los instalan y renuevan solos desde el panel, y el cifrado es el mismo que el de uno de pago.
Uno de pago te da validación OV o EV, soporte de la autoridad si algo va mal, y una garantía económica que en la práctica casi nadie reclama. Tiene sentido si tu empresa lo exige, si necesitas OV/EV o si tienes que instalarlo en un sistema que no sabe renovar solo.
Un apunte para los comodines: Let's Encrypt también los da gratis, pero solo con la validación por DNS (el reto DNS-01), así que tu proveedor de DNS tiene que dejar crear el registro de forma automática.
La caducidad se acorta: el calendario hasta 2029
Aquí está el cambio gordo. En abril de 2025 el CA/Browser Forum, que es donde navegadores y autoridades acuerdan las reglas, aprobó la votación SC-081. Baja la duración máxima de cualquier certificado público en tres escalones:
| Certificados emitidos desde | Duración máxima | Reutilizar la validación del dominio |
|---|---|---|
| Antes del 15-03-2026 | 398 días | 398 días |
| 15-03-2026 | 200 días | 200 días |
| 15-03-2027 | 100 días | 100 días |
| 15-03-2029 | 47 días | 10 días |
La fecha cuenta al emitir, así que un certificado sacado el 14 de marzo de 2027 puede seguir durando 200 días. Pero a partir de ahí, olvídate del «lo renuevo una vez al año y listo». Si te venden un certificado «de un año», lo que compras es una suscripción: el certificado lo tendrás que volver a emitir e instalar varias veces dentro de ese año.
Let's Encrypt va por su cuenta y más rápido. Según su propio anuncio:
- Hasta ahora, certificados de 90 días.
- Desde el 13 de mayo de 2026, quien quiera puede pedirlos de 45 días (perfil
tlsserver). También hay uno de 6 días (shortlived). - El 10 de febrero de 2027 el perfil normal pasa a 64 días.
- El 16 de febrero de 2028, a 45 días.
Otra cosa que pilla a mucha gente es que Let's Encrypt dejó de mandar correos de aviso de caducidad el 4 de junio de 2025. Si la renovación automática falla, ya no te llega nada. Te enteras cuando te escribe un cliente.
Cómo instalar un certificado SSL
En un hosting con panel
En cPanel, Plesk, hPanel y similares suele ser un botón: «SSL», «Let's Encrypt» o «AutoSSL». Lo activas para el dominio y el www, esperas unos minutos y ya está. Lo que el panel no hace por ti viene después (lo verás dos apartados más abajo).
En tu propio servidor, con Certbot
En un VPS con Nginx o Apache, Certbot pide el certificado, lo instala y deja programada la renovación:
# Nginx
sudo certbot --nginx -d ejemplo.com -d www.ejemplo.com
# Prueba la renovación sin gastar nada
sudo certbot renew --dry-run
# ¿Está programada? (en la mayoría de distribuciones va con systemd)
systemctl list-timers | grep certbot
Si el --dry-run acaba con «Congratulations, all simulated renewals succeeded», vas bien. Si da error, mejor saberlo hoy que el día que caduca.
Con un certificado de pago
- Generas la clave y la petición (CSR):
openssl req -new -newkey rsa:2048 -nodes -keyout ejemplo.key -out ejemplo.csr - Pegas el CSR en la web del proveedor y pasas la validación.
- Te devuelven el certificado y los intermedios. Instala la cadena completa (en Nginx, el archivo fullchain), no solo tu certificado.
- Recargas el servidor web y lo compruebas.
Lo que hay que hacer después, siempre
- Redirigir HTTP a HTTPS con un 301, y elegir una sola versión (con o sin
www). - Quitar el contenido mixto: imágenes, scripts o fuentes que se cargan con
http://dentro de una páginahttps://. El navegador los bloquea o los avisa (MDN lo explica bien). En WordPress suele ser cosa de URLs viejas en la base de datos. - HSTS, con calma: la cabecera
Strict-Transport-Securityobliga al navegador a usar siempre HTTPS. Va bien, pero si un día el certificado falla, tus visitas no podrán saltarse el aviso. Empieza con unmax-agecorto.
Si estás a punto de publicar una web nueva, todo esto está ordenado en la checklist de lanzamiento.
Cómo comprobar la caducidad de un certificado SSL
En el navegador
En Chrome, pulsa el icono que hay a la izquierda de la dirección, luego «La conexión es segura» y «El certificado es válido». Ahí ves el emisor y las fechas. En Firefox es parecido, desde el candado.
Con openssl, desde la terminal
Más rápido, y sirve para cualquier web, también la de un cliente:
$ echo | openssl s_client -connect ejemplo.com:443 -servername ejemplo.com 2>/dev/null \
| openssl x509 -noout -subject -issuer -dates
subject=CN = ejemplo.com
issuer=C = US, O = Let's Encrypt, CN = R11
notBefore=Sep 1 08:14:02 2026 GMT
notAfter=Nov 30 08:14:01 2026 GMT
Para saber si caduca en los próximos 14 días (1.209.600 segundos), sin hacer cuentas:
$ echo | openssl s_client -connect ejemplo.com:443 -servername ejemplo.com 2>/dev/null \
| openssl x509 -noout -checkend 1209600
Certificate will not expire
Y para ver si la cadena está bien montada, mira la última línea de esto:
$ openssl s_client -connect ejemplo.com:443 -servername ejemplo.com </dev/null 2>/dev/null | grep "Verify return code"
Verify return code: 0 (ok)
Si sale 21 (unable to verify the first certificate), falta el intermedio. Ojo, que esto engaña. Chrome en escritorio acostumbra a apañárselas buscando el intermedio por su cuenta y la web le carga bien, pero fallan algunos móviles, curl, las integraciones y las pasarelas de pago que llaman a tu servidor.
Errores de certificado SSL más típicos
En Chrome todos empiezan igual, con la pantalla de «La conexión no es privada». El código de debajo es lo que te dice qué pasa:
| Lo que sale | Qué suele ser | Qué miro primero |
|---|---|---|
NET::ERR_CERT_DATE_INVALID | Certificado caducado (o el reloj del ordenador del visitante va mal) | La fecha notAfter con openssl |
NET::ERR_CERT_COMMON_NAME_INVALID | El certificado no incluye ese nombre: falta el www, un subdominio nuevo, o el servidor sirve el certificado de otra web | El campo SAN y la configuración del servidor para ese dominio |
NET::ERR_CERT_AUTHORITY_INVALID | Certificado autofirmado, o de una autoridad que el navegador no reconoce | El emisor; en un hosting compartido, que el SSL esté activado de verdad |
ERR_SSL_VERSION_OR_CIPHER_MISMATCH | El servidor solo habla versiones viejas de TLS, o no tiene certificado para ese nombre | Que TLS 1.2 y 1.3 estén activos |
| «No es seguro» sin pantalla roja | Contenido mixto, o la web se abre por http:// | La consola de DevTools, que lista lo que se carga sin cifrar |
En Firefox los nombres cambian (SEC_ERROR_EXPIRED_CERTIFICATE, SSL_ERROR_BAD_CERT_DOMAIN…), pero el fondo es el mismo.
Qué pasa cuando caduca
Al minuto siguiente de la fecha notAfter, cada visita se encuentra la pantalla roja a toda página. Hay quien pulsa en «Configuración avanzada» y entra igual. La mayoría se va. Y si tienes HSTS activado, ni siquiera les dejas esa opción.
Y luego está lo que no se ve. Las llamadas entre servidores fallan sin enseñar ninguna pantalla. La pasarela de pago que confirma pedidos, la app que tira de tu API, el webhook de tu CRM… Todos reciben un certificate has expired y dejan de funcionar. Si la web se te ha caído por esto, en qué hacer cuando tu web se cae tienes el orden para diagnosticar.
Por qué falla la renovación automática sin que nadie se entere
«Pero si se renueva solo». Sí, cuando funciona. Estos son los fallos que más se ven:
- Has cambiado los DNS (por ejemplo, para poner un CDN delante) y la validación por HTTP ya no llega a tu servidor.
- Una regla de redirección o del
.htaccessbloquea la carpeta/.well-known/acme-challenge/, que es por donde Let's Encrypt comprueba que el dominio es tuyo. - Migraste de servidor y la tarea programada de renovación se quedó en el viejo.
- Se renueva pero no se recarga: el archivo nuevo está en disco y el servidor web sigue sirviendo el viejo de memoria. Pasa con instalaciones montadas a mano.
- El certificado está en dos sitios (el servidor y un balanceador, o el servidor y el CDN) y solo se renueva en uno.
- El dominio apunta a otro sitio por un cambio de registros DNS y la validación falla sin hacer ruido.
Con certificados de 200 días esto pasaba una o dos veces al año. Con 64 o 45 días, la renovación corre seis u ocho veces al año, y cada una puede fallar. Y mirarlo a mano cada vez es un rollo que, al final, nadie hace.
Vigilar el certificado con WatcherWolf
El SSL Monitor de WatcherWolf mira el certificado de cada web desde fuera, como lo ve un visitante, y te avisa 30, 14, 7 y 1 día antes de que caduque. A más a más, revisa la cadena de intermedios, la versión de TLS, los cifrados y el emisor, así que también te enteras si alguien cambia el certificado por otro o si se queda la cadena a medias.
Los avisos te llegan por correo, Telegram, notificación en el móvil con la app instalable, Slack, Teams, Discord o Google Chat, y cada canal decide qué avisos recibe. Si gestionas varias webs, ponle al lado el monitor de caducidad de dominio, porque un dominio caducado tumba la web igual, y el certificado no lo puede renovar nadie.
Para el resto de medidas de seguridad de una web pequeña, tienes la checklist de seguridad web. Y para decidir quién recibe cada aviso, cómo configurar las alertas.
Vigila tus certificados SSL: 14 días gratis, sin tarjeta
Preguntas frecuentes
¿Cuánto dura un certificado SSL?
Depende de cuándo se emita. Desde el 15 de marzo de 2026, 200 días como mucho; desde el 15 de marzo de 2027, 100 días; y desde marzo de 2029, 47. Los de Let's Encrypt duran 90 días y pasarán a 64 en febrero de 2027.
¿Un certificado SSL gratis es igual de seguro que uno de pago?
El cifrado es el mismo. Lo que cambia es cuánto comprueba la autoridad sobre tu empresa (DV, OV o EV) y el soporte. Para una web normal o una tienda, uno gratis de Let's Encrypt va bien.
¿Cuánto tarda en activarse un certificado SSL?
Uno DV, como los de Let's Encrypt, en minutos. Uno OV puede tardar uno o varios días, y un EV, más, porque comprueban los datos de la empresa a mano.
¿Necesito certificado SSL si mi web no vende nada?
Sí. Sin él, Chrome marca la página como «No es seguro», los formularios de contacto viajan sin cifrar y funciones como la geolocalización o las notificaciones no funcionan.
¿Por qué ya no sale el candado en Chrome?
Google lo cambió en 2023 por un icono de ajustes porque mucha gente lo entendía como señal de que la web era de fiar. La conexión sigue igual de cifrada; solo cambió el dibujo.
¿Qué pasa si caduca el certificado SSL de mi web?
Los navegadores muestran un aviso a toda pantalla y casi todo el mundo se va. Además, fallan las integraciones que llaman a tu servidor, como pasarelas de pago o APIs, hasta que lo renuevas.


