Está en la página 1de 16

INSTITUTO JOSE LUIS SAMPEDRO

DESPLIEGUE DE APLICACIONES WEB

CONEXIÓN CON SSL-TLS

DESARROLLO DE APLICACIONES WEB – SEGUNDO CICLO


PROFESOR: MIGUEL
ALUMNA: LILIANA
Indice
1. Introducción
2. Objetivo
3. Conexión segura con el servidor utilizando SSL/TLS (HTTPS)
3.1. Concepto
3.2. SSL
3.3. TLS
3.4. Actualizar e instalar nuevos paquetes
3.5. Habilitar el módulo SSL en Apache
3.6. Crear certificados
3.7. Certificado autofirmado
3.8. Importancia de los certificados CSR y CRT
3.9. Extras
4. Conclusión
5. Bibliografia

1.Introducción
En la presente práctica, nos enfocaremos en fortalecer la seguridad en el acceso al
servidor Apache mediante dos tareas específicas. La primera tarea se centrará en
establecer conexiones seguras mediante SSL/TLS (HTTPS), diferenciando entre los
tres hosts virtuales existentes. La segunda tarea consistirá en la configuración de un
proxy inverso que acepte conexiones HTTPS y se comunique con los hosts virtuales a
través de HTTP. Además, implementaremos la autenticación mediante certificados
digitales, utilizando una Autoridad de Certificación (CA) para firmar los certificados
de los clientes.

2.Objetivo:
El objetivo de esta práctica es fortalecer la seguridad en el acceso al servidor Apache
mediante la implementación de conexiones seguras (HTTPS) y la configuración de un
proxy inverso. Se fomenta la investigación y empleo de nuevos comandos y funciones
para garantizar una implementación eficiente y segura.
3. Conexión segura con el servidor utilizando SSL/TLS
(HTTPS)
3.1. Concepto

La conexión segura con el servidor mediante SSL/TLS, comúnmente conocida como


HTTPS, se refiere a un protocolo de comunicación cifrada diseñado para garantizar la
seguridad y privacidad de la información transmitida entre un cliente (como un
navegador web) y un servidor web. El acrónimo HTTPS proviene de "Hypertext
Transfer Protocol Secure".

3.2. SSL
Es un protocolo de seguridad diseñado para establecer conexiones seguras a través de
internet. Sin embargo, ha sido reemplazado por TLS en versiones más recientes.

3.3. TLS

Es la evolución de SSL y es el protocolo de seguridad más actualizado. Proporciona


autenticación, privacidad e integridad de datos para la comunicación entre dos
aplicaciones, en este caso, el cliente y el servidor.
3.4. Actualizar e instalar nuevos paquetes

apt update: Actualiza la lista de paquetes disponibles.

apt upgrade: Instala las actualizaciones disponibles para los paquetes


instalados.

3.5. Habilitar el módulo SSL en Apache

sudo a2dissite ana.com.conf : Es un comando específico de Apache en sistemas que se


utiliza para deshabilitar sitios (configuraciones) en el servidor web.

Ls -i : se utiliza para mostrar la lista de archivos y directorios en un directorio junto


con sus números de nodo-i (inode).

cd /etc/apache2/sites-available : es utilizado para almacenar archivos de configuración


de sitios web que están disponibles pero no activados por defecto en el servidor Apache.
Estos archivos de configuración representan diferentes sitios web que puedes
configurar en tu servidor.

cd /etc/apache2/sites-available : es un directorio donde se almacenan archivos de


configuración de sitios web disponibles para Apache, y se utilizan en combinación con
el directorio /etc/apache2/sites-enabled/ para gestionar la configuración de los sitios
web que el servidor Apache debe servir.

sudo rm -r default-ssl.conf : se utiliza para eliminar incluyendo subdirectorios y


archivos sin posiblidad de recuperacion el archivo o directorio llamado default-ssl.conf.
La opción -r en el comando rm indica que la operación debe ser realizada sin manera
de recuperar lo que fue removido.

sudo nano ana.com.conf : se utiliza para abrir el archivo de configuración ana.com.conf


en el editor de texto nano con privilegios de administrador.

confirma la puerta 80 y los datos del host

sudo a2ensite ana.com.conf : es un script en Ubuntu utilizado para habilitar (activar)


configuraciones de sitios web específicos en Apache. Este comando crea un enlace
simbólico desde el archivo de configuración del sitio web en /etc/apache2/sites-
available/ al directorio /etc/apache2/sites-enabled/.

sudo system reload apache2 : se utiliza reload del comando systemctl permite aplicar
cambios en la configuración del servicio sin reiniciar el servicio por completo.

sudo cp ana.com.conf carvalho.com.conf : se utiliza para copiar el archivo de


configuración ana.com.conf y crear una copia llamada carvalho.com.conf.

sudo nano carvalho.com.conf : se utiliza para abrir y editar el archivo de configuración


del sitio web llamado carvalho.com.conf utilizando el editor de texto nano.

cd /var/www : para alojar sitios web, los archivos de esos sitios generalmente se
colocan en subdirectorios dentro de /var/www

sudo cp -r html carvalho.com/: se utiliza para copiar recursivamente el contenido del


directorio llamado html a un directorio llamado carvalho.com.
Este tipo de operación es común al configurar o actualizar el contenido de un sitio web
en un servidor.

sudo a2ensite carvalho.com.conf : crea un enlace simbólico desde el archivo de


configuración del sitio web en /etc/apache2/sites-available/ al directorio
/etc/apache2/sites-enabled/. Este enlace simbólico es necesario para que Apache cargue
la configuración del sitio durante su próximo reinicio o recarga.

sudo system reload apache2 : se utiliza reload del comando systemctl permite aplicar
cambios en la configuración del servicio sin reiniciar el servicio por completo.

3.6. Crear certificados

Abajo en la pantalla, ya estan creados los certificados en cd / etc/apache2 los


certificados para facilitar la gestion de cada uno:
certificates_CA Y certificates_client

Cuando trabajas con certificados SSL/TLS en Apache, puedes necesitar navegar a


/etc/apache2 para editar o revisar estos archivos de configuración y gestionar los
certificados.
Crear el directorio certificates en cd /etc/apache2 : se utiliza para organizar de manera
más estructurada tus certificados SSL/TLS. Al tener un directorio dedicado para los
certificados, puedes separarlos de otros archivos de configuración y facilitar la gestión.
sudo mkdir certificates : se utiliza para crear un directorio en la ruta especificada.

sudo a2enmod ssl : es utilizado para activar el módulo SSL en Apache, permitiendo
que el servidor web sea capaz de manejar conexiones seguras a través del protocolo
HTTPS. Este módulo es esencial para habilitar la capa de seguridad SSL/TLS del
servidor Apache.

sudo system reload apache2 : se utiliza reload del comando systemctl permite aplicar
cambios en la configuración del servicio sin reiniciar el servicio por completo.

sudo openssl genrsa -out cliente.key 4096 : Al ejecutar este comando, se generará una
clave privada RSA de 4096 bits y se guardará en un archivo llamado cliente.key.

Los pasos del comando y para que sirve:


sudo: Indica que el comando se ejecutará con privilegios de superusuario. Esto puede
ser necesario dependiendo de los permisos en la ubicación donde estás guardando la
clave privada.

openssl: Es la herramienta de línea de comandos de OpenSSL, que se utiliza para


diversas operaciones de seguridad criptográfica.

genrsa: Es el comando de OpenSSL para generar una clave privada RSA.

-out cliente.key: Especifica el nombre del archivo de salida que contendrá la clave
privada generada. En este caso, se está nombrando el archivo como cliente.key.

4096: Especifica la longitud de bits de la clave privada RSA. En este caso, se ha


especificado una longitud de 4096 bits. Longitudes mayores proporcionan una mayor
seguridad, pero también pueden tener un impacto en el rendimiento.

Importante : Hay que proteger la clave privada porque otorga acceso a la entidad que
posee la clave. Asegurarte de almacenarla en un lugar seguro y de asignar permisos
adecuados a los archivos que contienen claves privadas para evitar accesos no
autorizados.

3.7. Certificado autofirmado

cd /etc/apache2/certificates
sudo openssl req -new -x509 -days 1460 -key -cliente.key -out cliente.crt -sha256 : se
utiliza para generar un certificado autofirmado.
Los pasos del comando:

sudo: Indica que el comando se ejecutará con privilegios de superusuario. Esto puede
ser necesario dependiendo de los permisos en la ubicación donde estás guardando el
certificado.

openssl: Es la herramienta de línea de comandos de OpenSSL, que se utiliza para


diversas operaciones de seguridad criptográfica.

req: Es el comando de OpenSSL para la gestión de solicitudes de certificados.

-new: Indica que estás generando una nueva solicitud de certificado.

-x509: Especifica que la solicitud de certificado es para un certificado X.509


autofirmado, es decir, un certificado que es firmado por la misma entidad a la que
pertenece.

-days -1460: Establece el período de validez del certificado en días. En este caso, se ha
especificado un valor negativo de -1460 días, lo que significa que el certificado será
válido durante aproximadamente 4 años (considerando un año bisiesto). Puedes ajustar
este valor según tus necesidades.

-key cliente.key: Especifica la clave privada que se utilizará para firmar el certificado.
En este caso, se está utilizando el archivo cliente.key como la clave privada.

-out cliente.crt: Especifica el nombre del archivo de salida donde se guardará el


certificado autofirmado. En este caso, se utiliza el archivo cliente.crt.
-sha256: Especifica el algoritmo de hash SHA-256 para la firma del certificado. SHA-
256 es un algoritmo de hash criptográfico seguro.

Importante: Al ejecutar este comando, se generará un certificado autofirmado (self-


signed certificate) válido por el período especificado, utilizando la clave privada
proporcionada (cliente.key) y se guardará en un archivo llamado cliente.crt. Este tipo
de certificado se utiliza a menudo en entornos de desarrollo o en situaciones donde no
se requiere una entidad emisora de certificados externa, como en conexiones seguras
de prueba o en entornos locales.

3.8. Importancia de los certificados CSR y CRT

sudo mv cliente,crt servidor.crt : se utiliza el comando para mover o renombrar el


archivo cliente.crt en servidor.crt.

sudo mv cliente.key servidor.key : se utiliza el comando para mover o renombrar el


archivo cliente.key en servidor.key.

IMPORTANTE:

CSR - EL cliente csr solo tiene la publica cliente

CRT – Publica cliente e la firma CA


cd /etc/apache2/sites/available

sudo nano carvalho.com.conf : Se utiliza para hacer cambios en su contenido

Añadir las lineas apuntando para los certificados:


editar configuracion cd /etc/ hosts
sudo nano /etc/hosts

sudo a2ensite carvalho.com.conf


3.9. Extras

Squid es un servidor proxy y caché web de código abierto muy utilizado. Su función principal es
actuar como intermediario entre los usuarios de una red y los servidores de Internet.
Squid actúa como un servidor proxy para las conexiones HTTP y HTTPS. Los clientes de la red se
conectan a Squid, y Squid realiza las solicitudes en su nombre, devolviendo los resultados a los
clientes.

4. Conclusión
En esta práctica, se abordaron aspectos cruciales de la seguridad en el servidor Apache, centrándose
en dos tareas fundamentales. La primera tarea consistió en establecer conexiones seguras mediante
SSL/TLS, diferenciando entre conexiones HTTP y HTTPS en diferentes hosts virtuales. La segunda
tarea involucró la configuración de un proxy inverso que gestionara conexiones HTTPS,
proporcionando acceso a sitios específicos a través de nombres de dominio personalizados. Además,
se implementó una capa adicional de seguridad mediante autenticación mediante certificados digitales,
utilizando una Autoridad de Certificación (CA) para firmar certificados de clientes.
El desarrollo de estas tareas no solo fortaleció la seguridad en las comunicaciones, sino que también
amplió el conocimiento sobre la configuración avanzada de Apache, la gestión de certificados y la
implementación de medidas de autenticación más sólidas.
5. Bibliografia
1. Apache HTTP Server Documentation. (https://httpd.apache.org/docs/)
2. OpenSSL Documentation. (https://www.openssl.org/docs/)
3. Certbot - User Guide. (https://certbot.eff.org/docs/)
4. Ubuntu Server Guide - Apache2.
(https://help.ubuntu.com/serverguide/apache2.html)

También podría gustarte