¿Es una buena práctica redirigir todo el tráfico HTTP que llega a mi sitio web recién creado a HTTPS de forma predeterminada? ¿Cuáles son los mejores procesos SSL que debo implementar?

Implementación y uso de SSL para asegurar el tráfico HTTP

La seguridad de los datos almacenados en un servidor de archivos es muy importante en estos días. Los datos comprometidos pueden costar miles de dólares a la empresa. En la última sección, compilamos el módulo de autenticación LDAP en la compilación de Apache para proporcionar un mecanismo de autenticación. Sin embargo, el tráfico HTTP es muy inseguro y todos los datos se transfieren en texto claro, lo que significa que la autenticación LDAP (userid / passwd) también se transmitirá como texto claro. Esto crea un problema. Cualquiera puede oler estos userid / passwd y obtener acceso a la tienda DAV. Para evitar esto, tenemos que cifrar el tráfico HTTP, esencialmente HTTP + SSL o HTTPS. Todo lo que se transfiere a través de HTTPS se cifra, por lo que el ID de usuario / contraseña LDAP no se puede descifrar fácilmente. HTTPS se ejecuta en el puerto 443. La compilación resultante del proceso de compilación de la última sección tendrá Apache para escuchar tanto el puerto 80 (HTTP normal) como el 443 (HTTPS). Si solo va a utilizar este servidor para DAV, le sugiero que cierre el puerto 80. En esta sección del CÓMO proporcionaré información sobre SSL y el mantenimiento de SSL en un servidor HTTP Apache.

6.1. Introducción a SSL

SSL (Secure Socket Layer) es una capa de protocolo que existe entre la capa de red y la capa de aplicación. Como su nombre indica, SSL proporciona un mecanismo para encriptar todo tipo de tráfico: LDAP, POP, IMAP y, lo más importante, HTTP.

La siguiente es una estructura sobre simplificada de las capas involucradas en SSL.

6.1.1. Algoritmos de cifrado utilizados en SSL

Hay tres tipos de técnicas criptográficas utilizadas en SSL: clave pública-privada, clave simétrica y firma digital.

Criografía de clave pública-privada: inicio de la conexión SSL: en este algoritmo, el cifrado y el descifrado se realizan mediante un par de claves privadas y públicas. El servidor web contiene la clave privada y envía la clave pública al cliente en el certificado.

  1. El cliente solicita contenido del servidor web mediante HTTPS.
  2. El servidor web responde con un Certificado digital que incluye la clave pública del servidor.
  3. El cliente verifica si el certificado ha expirado.
  4. Luego, el cliente verifica si la Autoridad de certificación que firmó el certificado es una autoridad confiable que figura en el navegador. Esto explica por qué necesitamos obtener un certificado de una CA confiable.
  5. ¿Entonces el cliente verifica si el nombre de dominio completo (FQDN) del servidor web coincide con el nombre de comando (CN) en el certificado?
  6. Si todo tiene éxito, se inicia la conexión SSL.

6.1.2. Garantizar autenticidad e integridad

  • Paso 1: en este paso, el mensaje original de “Texto claro” se cifra utilizando la clave privada del remitente, lo que da como resultado el texto cifrado 1. Esto garantiza la autenticidad del remitente.
  • Paso 2: en este paso, el “CipherText 1” se cifra utilizando la clave pública del receptor que da como resultado “CipherText 2”. Esto asegurará la autenticidad del receptor, es decir, solo el receptor puede descifrar el mensaje utilizando su clave privada.
  • Paso 3: Aquí se crea el Resumen de mensaje SHA1 del “Texto claro”.
  • Paso 4: el resumen del mensaje SHA1 se encripta utilizando la clave privada del remitente, lo que da como resultado la firma digital del “texto claro”. El receptor puede usar esta firma digital para garantizar la integridad del mensaje y la autenticidad del remitente.
  • Paso 5: La “Firma digital” y el “CipherText 2” se envían al receptor.

6.2. Certificados de prueba

6.3. Certificados para uso en producción

6.4. Cómo generar una CSR

6.5. Instalación de la clave privada del servidor y el certificado del servidor

Primero, asegúrese de que todos los enlaces apunten al punto final adecuado. No desea que los enlaces envíen personas a puntos finales HTTP simples desde una página HTTPS, incluso con una redirección en su lugar.

La redirección a HTTPS es generalmente una buena idea. Puede romper algunos clientes extraños que no hacen SSL correctamente (por ejemplo, su reloj del sistema está significativamente apagado), pero son relativamente raros. Sin embargo, no confíe demasiado en la redirección y asegúrese de que sus URL (incluso aquellas fuera del sitio web, como enlaces en redes sociales o tarjetas de negocios) apunten a HTTPS.