Seguridad y SSL

Cadena de certificados SSL: qué es y cómo valida la confianza en HTTPS

La cadena de certificados SSL es la secuencia de certificados que conecta el tuyo con una autoridad raíz de confianza, permitiendo que los navegadores validen HTTPS sin errores.

Close-up of a smartphone wrapped in a chain with a padlock, symbolizing strong security.

La cadena de certificados SSL (también llamada cadena de confianza) es la secuencia ordenada de certificados digitales que enlaza tu certificado de sitio web con una Autoridad Certificadora Raíz reconocida por los navegadores. Sin esta cadena completa, el navegador no puede verificar que tu HTTPS es de fiar y muestra un error de seguridad.

Por qué existe la cadena de certificados

Los navegadores y sistemas operativos vienen con una lista predefinida de certificados raíz de confianza. Sin embargo, las autoridades certificadoras (CA) no firman tu certificado directamente con la raíz: eso sería un riesgo enorme, porque si la clave raíz se comprometiera, todos los certificados del mundo perderían validez de inmediato.

Para reducir ese riesgo, las CA utilizan una arquitectura de delegación en cadena:

  • La CA raíz firma un certificado intermedio (o varios).
  • El certificado intermedio firma tu certificado de dominio (también llamado certificado de entidad final o leaf certificate).
  • La raíz permanece fuera de línea y bien protegida.

El resultado es una cadena de tres eslabones: raíz → intermedio → certificado de dominio. Cada eslabón tiene la firma digital del anterior, lo que permite validar la autenticidad de principio a fin.

Los tres eslabones de la cadena

Certificado raíz

Es la base de la confianza. Está autofirmado (es decir, lo firma su propia CA) y viene preinstalado en los almacenes de certificados de Windows, macOS, iOS, Android, Firefox, etc. DigiCert, Sectigo, Let's Encrypt y otras CA tienen sus propios certificados raíz en esas listas.

La clave privada de la raíz se guarda en dispositivos HSM desconectados de la red. Se utiliza raramente y solo para firmar certificados intermedios.

Certificado intermedio

Actúa como puente entre la raíz y tu certificado. Hay CAs que usan uno o dos niveles de intermedios. La ventaja de este eslabón es que, si se compromete, la CA puede revocarlo y emitir uno nuevo sin tocar la raíz.

Es responsabilidad del servidor web servir el certificado intermedio junto con el de dominio. Si el servidor no lo envía, el navegador tiene que buscarlo por su cuenta (AIA fetching), lo que puede fallar o añadir latencia.

Certificado de dominio (leaf)

Es el certificado que tú contratas para tu sitio. Contiene tu nombre de dominio, la clave pública del servidor y la firma del certificado intermedio. Tiene una vigencia típica de 90 días (Let's Encrypt) o 1 año (CAs comerciales).

Cómo valida el navegador la cadena

Cuando un visitante llega a tu sitio por HTTPS, el proceso de validación ocurre en milisegundos:

  1. El servidor envía el certificado de dominio y el(los) certificado(s) intermedio(s).
  2. El navegador verifica la firma del certificado de dominio usando la clave pública del intermedio.
  3. Verifica la firma del intermedio usando la clave pública de la raíz.
  4. Comprueba que la raíz está en su almacén de confianza.
  5. Verifica que ningún certificado de la cadena haya sido revocado (vía OCSP o CRL).
  6. Comprueba las fechas de vigencia de cada eslabón.

Si todos los pasos pasan, el navegador muestra el candado y establece la sesión cifrada. Si algún eslabón falta, está revocado o ha caducado, el navegador muestra un error de seguridad que espanta a los usuarios.

Problemas comunes con la cadena de certificados

El error más frecuente es la cadena incompleta: el servidor sirve solo el certificado de dominio sin incluir el intermedio. Chrome y Firefox pueden compensarlo mediante AIA fetching en ocasiones, pero Safari e iOS son más estrictos y muestran el error directamente. Además, el fetching añade una petición HTTP extra que ralentiza el handshake.

Problema Causa Síntoma en el navegador
Cadena incompleta Falta el certificado intermedio en el servidor ERR_CERT_AUTHORITY_INVALID o aviso de "no confiable"
Orden incorrecto Los certificados se sirven en orden inverso Error de SSL en algunos clientes
Intermedio caducado La CA no renovó el intermedio a tiempo ERR_CERT_DATE_INVALID
Raíz no reconocida CA privada o raíz no incluida en el sistema operativo Advertencia de certificado no confiable

Para diagnosticar tu cadena puedes usar herramientas online como SSL Labs (ssllabs.com/ssltest) o el comando openssl s_client -connect tudominio.com:443 -showcerts. También puedes consultar más recursos en la sección de seguridad SSL de nuestro blog.

Cómo construir y servir la cadena correctamente

En la práctica, cuando tu CA te entrega el certificado, suele incluir un archivo llamado ca_bundle.crt, chain.pem o similar. Este archivo contiene los intermedios necesarios.

Para Apache, la directiva correcta es:

SSLCertificateFile /ruta/al/dominio.crt
SSLCertificateKeyFile /ruta/a/privkey.pem
SSLCertificateChainFile /ruta/al/ca_bundle.crt

En versiones modernas de Apache (2.4.8+) puedes también concatenar el certificado de dominio y los intermedios en un solo archivo PEM y usar solo SSLCertificateFile. El orden correcto dentro del archivo es: certificado de dominio primero, luego intermedios (del más cercano al raíz hacia la raíz), sin incluir el certificado raíz (el navegador ya lo tiene).

Para Nginx:

ssl_certificate /ruta/al/fullchain.pem;      # dominio + intermedios concatenados
ssl_certificate_key /ruta/a/privkey.pem;

Let's Encrypt genera automáticamente el archivo fullchain.pem con el orden correcto. Si usas otro proveedor, asegúrate de construir ese archivo manualmente.

¿Necesitas ayuda para configurar correctamente tu cadena de certificados? El equipo de elenlace.com puede instalar y verificar tu SSL sin errores en cualquier servidor.

Conclusiones clave

  • La cadena de certificados SSL conecta tu certificado de dominio con una CA raíz reconocida a través de uno o más certificados intermedios.
  • Cada eslabón de la cadena lleva la firma digital del anterior, garantizando la trazabilidad de la confianza.
  • El servidor web debe servir siempre el certificado de dominio junto con los intermedios; la raíz no se envía porque ya está en el navegador.
  • Una cadena incompleta es la causa más frecuente de errores SSL que no tienen que ver con el certificado en sí.
  • Herramientas como SSL Labs o openssl s_client permiten verificar la cadena completa en segundos.

Preguntas frecuentes

¿Por qué no se incluye el certificado raíz en la cadena que envía el servidor?

Porque el navegador ya lo tiene preinstalado en su almacén de confianza. Enviarlo sería redundante y añadiría bytes innecesarios al handshake. Además, si el raíz no está en el almacén del navegador, enviarlo en la cadena tampoco resolvería el problema: el navegador no confiaría en él de todos modos.

¿Qué pasa si mi cadena está incompleta?

Algunos navegadores como Chrome intentan recuperar el intermedio faltante a través del protocolo AIA (Authority Information Access), pero esto añade latencia. Safari y clientes nativos de iOS son más estrictos y muestran directamente un error de seguridad. Lo correcto es configurar el servidor para servir siempre la cadena completa.

¿Cómo sé si mi cadena de certificados es correcta?

La forma más rápida es usar SSL Server Test de Qualys (ssllabs.com/ssltest). Te muestra cada eslabón de la cadena y alerta si falta alguno. También puedes usar el comando openssl s_client -connect tudominio.com:443 desde la terminal para ver la cadena tal como la entrega tu servidor.

¿Let's Encrypt maneja la cadena automáticamente?

Sí. Certbot y otros clientes ACME de Let's Encrypt generan el archivo fullchain.pem que ya contiene el certificado de dominio y los intermedios en el orden correcto. Solo necesitas apuntar tu servidor a ese archivo en lugar del certificado de dominio solo.

¿Prefieres que lo hagamos por ti? En El Enlace resolvemos hosting y desarrollo web profesional.

Recursos útiles

Otros proveedores y guías que vale la pena comparar:

← Todos