Cómo funcionan realmente HTTPS y TLS: Guía paso a paso

Security2026-10-23TryQuickToolBox

Probablemente hayas visto el ícono del candado en tu navegador y asumido que tu conexión es segura. Pero, ¿qué sucede realmente cuando visitas un sitio HTTPS? ¿Cómo sabe tu navegador que está hablando con el servidor real y no con un impostor? ¿Y por qué TLS a veces ralentiza tu sitio?

En esta guía, desmitificaremos HTTPS y TLS recorriendo el handshake paso a paso. Aprenderás los roles de los certificados, el cifrado simétrico y asimétrico, y cómo verificar y optimizar TLS en tus propios proyectos.

Qué hacen realmente HTTPS y TLS

HTTPS es HTTP sobre TLS (Transport Layer Security). TLS proporciona tres garantías:

Sin TLS, el tráfico HTTP se envía en texto plano. Cualquiera en la ruta de la red (puntos de acceso Wi-Fi, ISP, routers comprometidos) puede leerlo o alterarlo. TLS resuelve esto estableciendo un canal seguro antes de que se intercambien datos HTTP.

El handshake TLS: paso a paso

El handshake es donde ocurre la magia. Es una negociación que establece claves compartidas y verifica identidades. Aquí está el flujo simplificado para TLS 1.2 y 1.3 (las dos versiones que encontrarás hoy).

Paso 1: Client Hello

El cliente (navegador) envía un mensaje ClientHello que contiene:

Paso 2: Server Hello y certificado

El servidor responde con un ServerHello (versión elegida, suite de cifrado, server random) y su certificado. El certificado contiene la clave pública del servidor y está firmado por una Autoridad de Certificación (CA).

El cliente verifica el certificado: ¿Está expirado? ¿Está emitido por una CA de confianza? ¿Coincide el dominio? Si no, el navegador muestra una advertencia.

Paso 3: Intercambio de claves

Usando la clave pública del servidor (o parámetros Diffie-Hellman), el cliente y el servidor derivan un secreto pre-maestro compartido. En TLS 1.3, esto se hace con Diffie-Hellman efímero (ECDHE), proporcionando secreto hacia adelante: incluso si la clave privada del servidor se ve comprometida más tarde, las sesiones pasadas permanecen seguras.

Paso 4: Finished

Ambos lados envían un mensaje Finished cifrado con las claves recién derivadas. Si el descifrado tiene éxito, el handshake está completo. A partir de entonces, todos los datos de la aplicación (HTTP) se cifran con cifrado simétrico (por ejemplo, AES-GCM o ChaCha20-Poly1305).

Mejoras de TLS 1.3

TLS 1.3 reduce el handshake a un viaje de ida y vuelta (1-RTT) y admite reanudación 0-RTT para visitantes recurrentes. También elimina algoritmos obsoletos, haciéndolo más rápido y seguro. La mayoría de los navegadores y servidores modernos admiten TLS 1.3.

Cifrado simétrico vs asimétrico en TLS

TLS utiliza ambos tipos de cifrado por una buena razón:

Este enfoque híbrido te brinda la seguridad de la criptografía de clave pública con el rendimiento de los cifrados simétricos.

Certificados: anclas de confianza

Un certificado vincula una clave pública a un nombre de dominio y está firmado por una CA. Los navegadores y sistemas operativos incluyen un almacén de CA raíz de confianza. Cuando un servidor presenta su certificado, el cliente construye una cadena de confianza hasta una raíz de confianza.

Los certificados tienen una vida útil limitada (ahora a menudo 90 días con Let's Encrypt). Los certificados expirados causan errores en el navegador, así que automatiza la renovación.

Práctico: Inspeccionar TLS con OpenSSL

Puedes inspeccionar la configuración TLS de un servidor usando la herramienta de línea de comandos openssl. Esto ayuda a depurar fallos de handshake o verificar suites de cifrado.

openssl s_client -connect example.com:443 -servername example.com -tls1_3

Esto se conecta al servidor e imprime la cadena de certificados, el cifrado negociado y los detalles de la sesión. Busca Verify return code: 0 (ok) para confirmar que el certificado es válido.

Para verificar la expiración del certificado:

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates

Errores comunes de TLS y cómo evitarlos

Optimizar el rendimiento de TLS

TLS agrega latencia debido al handshake. Aquí te mostramos cómo minimizarla:

Preguntas frecuentes

¿Cuál es la diferencia entre HTTPS y TLS?

HTTPS es la versión segura de HTTP, y TLS es el protocolo criptográfico que proporciona la seguridad. HTTPS usa TLS para cifrar y autenticar la conexión.

¿Cómo proporciona TLS secreto hacia adelante?

El secreto hacia adelante asegura que incluso si la clave privada del servidor se ve comprometida, las claves de sesión pasadas no puedan derivarse. Se logra utilizando el intercambio de claves Diffie-Hellman efímero (ECDHE) en TLS 1.3 y en configuraciones modernas de TLS 1.2.

¿Por qué veo errores de certificado en algunos sitios?

Los errores de certificado generalmente significan que el certificado está expirado, es autofirmado, fue emitido para un dominio diferente o la cadena de certificados está incompleta. Los navegadores rechazan dichos certificados para protegerte de ataques de intermediario.

Cuando necesites inspeccionar o depurar conexiones TLS, herramientas como Timestamp Converter pueden ayudarte a decodificar los períodos de validez de los certificados y depurar problemas relacionados con el tiempo.