Glosario

¿Qué es OpenSSL? La biblioteca que se encarga del cifrado HTTPS y cómo mantenerla segura

OpenSSL es la biblioteca que sustenta HTTPS (TLS/SSL). Por qué un fallo como Heartbleed afecta a servidores de todo el mundo y cómo mantenerla parcheada.

Publicado 2026-06-29 Actualizado 2026-10-06 9 min de lectura
En esta página

Si sirves HTTPS, tu servidor casi con seguridad funciona sobre OpenSSL (o una implementación compatible). Nunca lo tocas directamente y, sin embargo, cuando se descubre un fallo, se ven afectados muchísimos servidores. Esto es lo que hace la biblioteca y cómo defenderla.

Dónde se usa

Lo complicado de OpenSSL es que lo usas sin haberlo elegido nunca. Tu aplicación delega TLS en el servidor web, el servidor web delega el cifrado en OpenSSL, y ese OpenSSL lo trae el sistema operativo: una pila anidada.

Tu aplicación
↓ delega TLS
Servidor web (Nginx / Apache) · entorno de ejecución del lenguaje
↓ delega el cifrado
OpenSSL (lo trae el sistema operativo)
OpenSSL es la capa inferior. Cada capa superior le delega el cifrado, así que una sola vulnerabilidad las afecta a todas.

Normalmente esto es práctico: el cifrado se deja a una implementación compartida escrita por expertos. Pero cuando esa biblioteca compartida tiene una vulnerabilidad, todos los que la usan se ven afectados a la vez. Eso es lo que significa que un fallo de una biblioteca fundamental tenga un impacto amplio.

OpenSSL frente a SSL/TLS y los certificados

Los nombres se parecen y se confunden, pero cada uno cumple un papel distinto.

TérminoQué esEjemplo
SSL / TLSLas reglas (protocolo) para cifrar una conexión. SSL es la versión antigua; hoy se usa TLS 1.2 / 1.3HTTPS es HTTP envuelto en TLS
OpenSSLEl programa (biblioteca) que realiza las operaciones TLS y criptográficas, más una herramienta de línea de comandos incluidaNginx y Apache la llaman internamente
CertificadoDatos con los que una autoridad de certificación garantiza que eres el titular de un dominio. Contiene una clave públicaLet's Encrypt los emite gratis

Es decir, OpenSSL es una herramienta que implementa las reglas de TLS, y un certificado son datos que esa herramienta usa durante una conexión. Otras bibliotecas también implementan TLS (LibreSSL, BoringSSL, Schannel de Windows y más), y cuál usas depende del sistema operativo y del software.

Por qué el impacto es tan amplio: un solo fallo puso en riesgo las claves de muchos servidores

El Heartbleed de 2014 (CVE-2014-0160) vino de un pequeño error de implementación de OpenSSL (confiar en una longitud declarada sin validarla) que dejaba a un externo leer la memoria del servidor —que podía incluir claves privadas y datos de sesión— poco a poco. Como OpenSSL se usaba tan ampliamente, una enorme cantidad de servidores de todo el mundo se convirtió en objetivo simultáneamente (la historia completa → Heartbleed).

La lección es clara: cuanto más abajo en la pila está una dependencia, más amplio es el impacto. Así que no se trata solo de las dependencias que tu aplicación importa directamente: las bibliotecas fundamentales como OpenSSL que corren por debajo merecen la misma seriedad en la monitorización y el parcheo.

Cómo defenderla: evita el EOL, monitoriza las bibliotecas fundamentales

1

Conoce qué OpenSSL usa tu pila

No puedes defender lo que no puedes ver. Inventaría de qué OpenSSL (línea de versión y versión) dependen cada uno de tus servidores, imágenes base de contenedor y entornos de ejecución de lenguajes.

2

No ejecutes versiones en fin de soporte (EOL)

Una vez que una línea de versión queda sin soporte, las nuevas vulnerabilidades que se descubran en ella no reciben ninguna corrección. Si sigues ejecutando una versión EOL, las vulnerabilidades quedan sin corregir incluso después de descubrirse. Planifica las actualizaciones hacia una línea soportada.

3

Incluye las bibliotecas fundamentales en la monitorización de CVE

Las dependencias de la aplicación son fáciles de rastrear con osv-scanner y similares, pero el OpenSSL que trae el sistema operativo es fácil de pasar por alto. Asegúrate de que también afloren los nuevos CVE de las bibliotecas fundamentales (→ el manual de remediación de CVE).

4

Parchea con rapidez cuando sea grave

Los fallos de la categoría de Heartbleed se atacan en el momento en que se divulgan. Mantén tu vía de actualización lo bastante ligera como para que los parches de las bibliotecas fundamentales puedan desplegarse el mismo día cuando la gravedad lo exija, no «en la próxima actualización programada».

Versiones con soporte (a octubre de 2026)

El proyecto OpenSSL publica una versión de soporte a largo plazo (LTS) en abril de los años impares y le da soporte durante al menos cinco años. Las versiones no LTS publicadas después de 3.5 tienen soporte durante 13 meses desde su publicación.

LíneaTipoFin del soporte
4.0Normal14 de mayo de 2027
3.6Normal1 de noviembre de 2026
3.5LTS8 de abril de 2030
3.4Normal22 de octubre de 2026
3.0 / 1.1.1 / 1.0.2—Terminado (solo soporte extendido de pago de OpenSSL Corporation)

El OpenSSL que trae tu sistema operativo es otra historia. Muchas distribuciones Linux, entre ellas las basadas en Red Hat, incorporan correcciones sin subir el número de versión (retroportado o backporting). Durante el periodo de soporte del sistema operativo, un paquete que sigue indicando 3.0 puede seguir recibiendo correcciones del proveedor del sistema. No juzgues «viejo significa vulnerable» ni «nuevo significa seguro» solo por el número; consulta los avisos de seguridad del proveedor de tu sistema operativo.

Cómo comprobar tu propio entorno

1

Comprueba el OpenSSL del sistema operativo

Ejecuta openssl version -a para ver la versión. Para la versión del paquete, usa dpkg -l 'libssl*' openssl en Debian/Ubuntu o rpm -q openssl en sistemas basados en Red Hat. Compara esa versión del paquete con los avisos de seguridad del proveedor de tu sistema operativo para ver si incluye la corrección.
2

Comprueba qué usan realmente tus aplicaciones

Algunos programas incluyen su propio OpenSSL, separado del del sistema operativo. nginx -V para Nginx, python3 -c "import ssl; print(ssl.OPENSSL_VERSION)" para Python y node -p process.versions.openssl para Node.js muestran la versión integrada.
3

Comprueba también las imágenes de contenedor

El OpenSSL de dentro de un contenedor no cambia cuando actualizas el sistema operativo del host. Reconstruye las imágenes base con regularidad y analiza cada imagen en busca de vulnerabilidades.
4

Suscríbete a los anuncios de seguridad de OpenSSL

Para las versiones con correcciones graves, la lista de correo openssl-announce recibe la fecha y la gravedad (sin detalles) con una semana de antelación aproximadamente. Con ese aviso puedes reservar tiempo para la actualización por adelantado.

Cómo interpretar la gravedad de una vulnerabilidad

El proyecto OpenSSL clasifica sus propias vulnerabilidades en cuatro niveles y cambia la forma de publicar las correcciones según el nivel.

GravedadSignificado aproximadoCómo se publica la corrección
CriticalAfecta a configuraciones habituales y es fácil de explotar (fuga importante de memoria del servidor, robo de claves privadas, etc.)Se publica de inmediato una corrección para todas las versiones con soporte
HighMenos arriesgada que Critical pero aun así grave (configuraciones menos habituales, solo del lado del cliente, etc.)Se prepara en privado y luego se publica para todas las versiones con soporte
ModerateLimitada a denegación de servicio, protocolos poco habituales y similaresSe incluye en la siguiente versión programada
LowSolo herramientas de línea de comandos, combinaciones de condiciones improbables y similaresSe incluye en la siguiente versión programada

Un fallo como Heartbleed, en el que la memoria del servidor puede leerse desde fuera, encaja en la definición de Critical. En los casos Critical y High, empieza a preparar la actualización en cuanto veas el aviso previo.

Nuestra postura: monitoriza las bibliotecas fundamentales con máquinas

No puedes rastrear los fallos de las bibliotecas fundamentales con la memoria humana. Este sitio pone sus propias dependencias y bibliotecas fundamentales bajo monitorización de CVE automatizada. Los certificados que sirves vía Let's Encrypt ejecutan igualmente su cifrado por debajo a través de una implementación de la familia OpenSSL, así que listar las bibliotecas fundamentales en las que nunca piensas y monitorizarlas es la forma más directa de prevenir incidentes de gran alcance.

Sigue leyendo

Fuentes (primarias)

  • OpenSSL Library, "Release Strategy" — openssl-library.org (política LTS, fechas de fin de soporte de cada línea)
  • OpenSSL Library, "Security Policy" — openssl-library.org (cuatro niveles de gravedad, aviso previo)
  • Red Hat, "Backporting Security Fixes" — access.redhat.com (por qué el número de versión por sí solo no indica si eres vulnerable)
  • NIST NVD, "CVE-2014-0160" — nvd.nist.gov (Heartbleed)

FAQ

QNunca instalé OpenSSL, ¿podría estar usándolo igualmente?
A

Casi con seguridad sí. OpenSSL es una biblioteca fundamental que usan internamente los servidores web (Nginx/Apache), los sistemas operativos y los entornos de ejecución de lenguajes. Aunque nunca lo referencies en tu código, si sirves HTTPS es muy probable que OpenSSL (o una implementación compatible) esté ejecutándose por debajo. Suponer «yo no lo uso» es exactamente como se pasan por alto las vulnerabilidades de las bases fundamentales.

Q¿En qué se diferencia de LibreSSL o BoringSSL?
A

Ambos son forks de OpenSSL. LibreSSL lo creó el proyecto OpenBSD tras Heartbleed para limpiar el código base; BoringSSL es la variante de Google para su propio uso. La mayoría de las personas no necesita elegir entre ellos: lo que importa mucho más es mantener la implementación que trae tu plataforma en una versión soportada y al día.

Q¿Cómo compruebo la versión o la actualizo?
A

En muchos sistemas `openssl version` la muestra, y la actualizas a través del gestor de paquetes de tu sistema operativo o reconstruyendo la imagen base de tu contenedor. Lo clave es no seguir ejecutando una versión en fin de soporte (EOL): una vez que una línea de versión llega a EOL, las nuevas vulnerabilidades que se descubran en ella no reciben corrección. Vigila tus dependencias fundamentales igual que vigilas las dependencias de tu aplicación.

Q¿Qué diferencia hay entre OpenSSL y SSL?
A

SSL (hoy, su sucesor TLS) es el nombre de las reglas (protocolo) para cifrar una conexión. OpenSSL es el nombre de un programa (biblioteca) que ejecuta esas reglas. Cuando te conectas por HTTPS, el servidor web usa una biblioteca como OpenSSL para gestionar TLS.

Q¿Puedo seguir usando OpenSSL 3.0?
A

El soporte del proyecto OpenSSL para 3.0 ha terminado (salvo el soporte extendido de pago). Sin embargo, un paquete 3.0 incluido en una distribución Linux puede seguir recibiendo correcciones retroportadas durante el periodo de soporte de ese sistema operativo. Un 3.0 que compilaste tú o uno incluido dentro de una aplicación no recibirá correcciones, así que pasa a una línea con soporte, como 3.5 (LTS, con soporte hasta abril de 2030).

QAcaban de anunciar una vulnerabilidad de OpenSSL. ¿Qué hago primero?
A

Mira primero la gravedad. Si es Critical o High, comprueba si tus servidores, contenedores y aplicaciones usan una línea de OpenSSL afectada, y actualiza en cuanto el proveedor de tu sistema operativo o el editor de la imagen publique la corrección. Después de actualizar, reinicia los procesos que cargan OpenSSL (como el servidor web); si no, la biblioteca antigua sigue en memoria.