Cómo funcionan realmente HTTPS y TLS: Guía práctica

Security2026-10-31TryQuickToolBox

Probablemente hayas visto el icono del candado en tu navegador y sepas que significa "seguro". Pero, ¿qué ocurre realmente cuando visitas un sitio web HTTPS? ¿Cómo acuerdan tu navegador y el servidor las claves de cifrado sin que nadie las intercepte? Si eres desarrollador, entender TLS es esencial para depurar problemas de conexión, configurar servidores y construir aplicaciones seguras.

Esta guía desglosa HTTPS y TLS en términos prácticos. Cubriremos el handshake, los certificados, el cifrado y te daremos pasos accionables para asegurar tu propio sitio.

¿Qué es TLS y cómo se relaciona con HTTPS?

TLS (Transport Layer Security) es un protocolo criptográfico que proporciona comunicación segura a través de una red. HTTPS es simplemente HTTP sobre TLS. Cuando ves https://, significa que el tráfico HTTP está cifrado usando TLS.

TLS garantiza tres cosas:

Sin TLS, cualquier dato que envíes (contraseñas, tarjetas de crédito, mensajes) viaja en texto plano y puede ser interceptado.

El handshake TLS: paso a paso

Antes de que se intercambien datos cifrados, el cliente y el servidor realizan un handshake para acordar algoritmos de cifrado y establecer claves compartidas. Aquí tienes una versión simplificada de un handshake TLS 1.3 (el estándar moderno):

  1. Client Hello: El cliente envía una lista de suites de cifrado soportadas, un valor aleatorio y otros parámetros.
  2. Server Hello: El servidor elige una suite de cifrado, envía su propio valor aleatorio y proporciona su certificado.
  3. Intercambio de claves: Usando la clave pública del certificado, el cliente y el servidor derivan un secreto compartido (usando Diffie-Hellman).
  4. Finished: Ambas partes verifican el handshake y comienzan a cifrar los datos de la aplicación.

En TLS 1.3, este proceso requiere solo un viaje de ida y vuelta, lo que lo hace más rápido que versiones anteriores.

Por qué importan los certificados

Los certificados son identificaciones digitales emitidas por Autoridades de Certificación (CAs). Contienen la clave pública del servidor y están firmados por la CA para demostrar autenticidad. Cuando tu navegador se conecta, verifica:

Si alguna verificación falla, verás una advertencia. Los certificados autofirmados son útiles para pruebas pero no para producción.

Cifrado en TLS: simétrico y asimétrico

TLS utiliza tanto cifrado asimétrico como simétrico:

TLS 1.3 moderno utiliza Diffie-Hellman efímero para el intercambio de claves, proporcionando secreto hacia adelante: incluso si la clave privada del servidor se ve comprometida más tarde, las sesiones pasadas permanecen seguras.

Pasos prácticos para implementar HTTPS en tu sitio

¿Listo para asegurar tu sitio? Sigue estos pasos:

  1. Obtén un certificado: Usa Let's Encrypt (gratis) o una CA comercial.
  2. Instala el certificado en tu servidor web (Nginx, Apache, etc.).
  3. Configura tu servidor para usar protocolos y cifrados fuertes. Deshabilita TLS 1.0/1.1 y SSLv3.
  4. Redirige HTTP a HTTPS con una redirección 301.
  5. Habilita HSTS (HTTP Strict Transport Security) para forzar a los navegadores a usar HTTPS.
  6. Prueba tu configuración usando herramientas como SSL Labs' SSL Test.

Aquí tienes un fragmento de configuración de Nginx para HTTPS:

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
    ssl_prefer_server_ciphers off;

    add_header Strict-Transport-Security "max-age=63072000" always;

    location / {
        root /var/www/html;
        index index.html;
    }
}

Recuerda renovar los certificados automáticamente (por ejemplo, con Certbot).

Errores comunes de TLS y cómo evitarlos

Preguntas frecuentes

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

SSL es el predecesor de TLS. Las versiones de SSL están obsoletas debido a vulnerabilidades de seguridad. Cuando la gente dice "certificado SSL", generalmente se refiere a un certificado TLS. Usa siempre TLS 1.2 o 1.3.

¿Cómo afecta HTTPS al rendimiento?

TLS moderno añade una latencia mínima (un viaje de ida y vuelta en TLS 1.3). Con la reanudación de sesión y HTTP/2, la sobrecarga es insignificante. De hecho, HTTPS permite protocolos más rápidos como HTTP/2 y compresión Brotli.

¿Puedo usar HTTPS sin un certificado de una CA?

Puedes usar un certificado autofirmado, pero los navegadores mostrarán una advertencia. Para sitios públicos, usa siempre un certificado de una CA de confianza. Let's Encrypt proporciona certificados gratuitos confiados por todos los navegadores principales.

¿Necesitas verificar rápidamente las cabeceras de seguridad de tu sitio o generar una configuración segura? Prueba nuestro Analizador de Registros de Nginx para inspeccionar el tráfico y asegurarte de que tu configuración HTTPS funciona correctamente.