Joven hacker sonriendo

Hackeamos su software

cero falsos positivos

Inteligencia experta + tecnología especializada

Configurar Soporte HTTPS

Nuestros ethical hackers explican cómo evitar vulnerabilidades de seguridad mediante la configuración segura en Apache de Canales seguros para el envío de información. Los canales seguros de información cifran los datos con SSL, lo que permite mejorar la seguridad de la aplicación.

Necesidad

Configurar un canal seguro para el envío de información a través de formularios Web configurando el soporte HTTPS en Apache.

Contexto

A continuación se describen las circunstancias bajo las cuales la siguiente solución tiene sentido:

  1. Se requiere la transmisión de información por un canal seguro a través de una página Web.

  2. Asegurar la confidencialidad de datos cifrando su contenido con SSL.

Solución

Hypertext Transfer Protocol Secure (en español: Protocolo seguro de transferencia de hipertexto), más conocido por sus siglas HTTPS, es un protocolo de aplicación basado en el protocolo HTTP, destinado a la transferencia segura de datos de Hipertexto, es decir, es la versión segura de HTTP. [1]

El sistema HTTPS utiliza un cifrado basado en SSL/TLS (Secure Sockets Layer/Transport Layer Security) para crear un canal cifrado más apropiado para el tráfico de información sensible que el protocolo HTTP. De este modo se consigue que la información sensible no pueda ser usada por un atacante que haya conseguido interceptar la transferencia de datos de la conexión, ya que lo único que obtendrá será un flujo de datos cifrados que le resultará imposible de descifrar.

Como contextualización, se hace necesario explicar que TLS y su antecesor SSL son protocolos criptográficos que proporcionan comunicaciones seguras por una red, comúnmente Internet.

Para configurar el uso de HTTPS en Apache se deben seguir los siguientes pasos:

  1. Se debe instalar el protocolo SSL en el sistema operativo y el modulo de soporte para servidores Apache.

  2. Debian y derivados

    instalacion.bash
    1
    apt-get install mod_ssl openssl
    
  3. Red Hat y derivados

    1
    yum install mod_ssl openssl
    
  4. Después, hay que generar una clave privada (Para el ejemplo se utiliza algoritmo RSA a 1024 bits)

    1
    openssl genrsa -out ca.key 1024
    
  5. Seguidamente, se genera el CSR (Certificate Signing Request)

    1
    2
    3
    openssl req -new -key ca.key -out ca.csr
    # Se autofirma el certificado
    openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
    
  6. Una vez generado el CSR, se deben mover los ficheros de la firma que acabamos de generar a las rutas.

    1
    2
    3
    mv ca.crt /etc/pki/tls/certs
    mv ca.key /etc/pki/tls/private/ca.key
    mv ca.csr /etc/pki/tls/private/ca.csr
    
  7. Una vez hecho lo anterior, hay que editar el archivo /etc/httpd/conf.d/ssl.conf y buscar los parámetros SSLCertificateFile y SSLCertificateKeyFile para asignarle los valores.

    1
    2
    SSLCertificateFile /etc/pki/tls/certs/ca.crt
    SSLCertificateKeyFile /etc/pki/tls/private/ca.key
    
  8. Por último, se crea un host virtual donde se le indicara al servidor Apache donde enrutar las peticiones dirigidas al puerto 443 (Peticiones HTTPS). Para esta operación se edita el archivo /etc/httpd/conf/httpd.conf y se copia al final.

    1
    2
    3
    4
    5
    6
    7
    8
    <VirtualHost *:443>
     SSLEngine on
     SSLCertificateFile /etc/pki/tls/certs/ca.crt
     SSLCertificateKeyFile /etc/pki/tls/private/ca.key
     AllowOverride All
     DocumentRoot /var/www/httpsdocs
     ServerName dominio.com
    </VirtualHost>
    
  9. Reiniciamos el servidor Apache.

    1
    /etc/init.d/apache restart
    



Haz un comentario

Estado de los servicios - Términos de Uso