Facultad de Ciencias, UNAM
==========================
Redes de Computadoras
==========================
### Intergrantes:
#### Cervantes López Aarón 310000783
#### Morales Campos David Iván 313327726
#### Reyes Granados Naomi Itzel 314141341
#### Sánchez Del Moral Adriana 313154672
# Práctica 4
## Reporte
## Implementación de sitios web sobre HTTPS
### Creación de la máquina virtual de AWS
#### Generar una llave SSH

<p style="text-align: center;">Llaves SSH</p>
#### Creación de la instancia EC2

<p style="text-align: center;">Instancia EC2</p>
identificador de la instancia EC2: **i-0aaf2f268c0e27f9f**
#### Asignación de IP estática

<p style="text-align: center;">IP estática</p>
IP estática: **44.194.235.40**
#### Asignación DNS a la instancia EC2

<p style="text-align: center;">DNS</p>
#### Acceso inicial y Autenticación SSH

<p style="text-align: center;">Archivo config</p>

<p style="text-align: center;">Llave SSH Profesores</p>
### Configuración inicial de la instancia EC2

<p style="text-align: center;">Utilerias de red</p>

<p style="text-align: center;">Hostname</p>

<p style="text-align: center;">Locale</p>

<p style="text-align: center;">Zona Honoraria</p>
### Instalación del servidor Apache HTTPD



### Tramite de certificado SSL con Let's Encript

<p style="text-align: center;">Salida del comando certbot</p>


<p style="text-align: center;">Verifica que tengas el certificado y la llave privada en /etc/letsencrypt</p>

<p style="text-align: center;">Verifica que se estén utilizando los certificados de Let's Encrypt en tu VirtualHost de HTTPS</p>
### Configuración de VirtualHosts para HTTP y HTTPS

#### Revisa con un navegador web que los dos VirtualHosts que acabas de crear respondan correctamente

<p style="text-align: center;">http://cervantes49.tech/</p>

<p style="text-align: center;">http://docs.cervantes49.tech/</p>

<p style="text-align: center;">http://manual.cervantes49.tech/</p>

<p style="text-align: center;">http://sitio.cervantes49.tech/</p>

<p style="text-align: center;">http://estatico.cervantes49.tech/</p>
#### Revisión de la redirección de HTTP a HTTPS

<p style="text-align: center;">curl -v "http://cervantes49.tec/"</p>

<p style="text-align: center;">curl -v "http://docs.cervantes49.tech/"</p>

<p style="text-align: center;">curl -v "http://manual.cervantes49.tech/"</p>

<p style="text-align: center;">curl -v "http://sitio.cervantes49.tech/"</p>

<p style="text-align: center;">curl -v "http://estatico.cervantes49.tech/"</p>
## Cuestionario
- ¿Para qué sirvió la configuración inicial de la máquina virtual?, ¿qué ventajas proporciona respecto a una máquina virtual que no tenga esta configuración?
La configuración inicial de la maquina virtual sirve para poder autenticarnos a través de la creacion del par de llaves ssh (pública y privada) sin necesidad de introducir una contraseña y para que todas las comunicaciones desde y hacia la MV sucedan de manera encriptada.
Las ventajas sobre una maquina que no tenga esta congfiguración son la seguridad y privacidad que nos proporciona.
- ¿Para qué sirve la configuración de seguridad que se aplicó a Apache HTTPD?, ¿qué ventajas proporciona respecto a un servidor que no cuente con estas configuraciones?
Sirve para garantizar la seguridad de las comunicaciones a través de Internet.
- ¿Existe alguna diferencia al crear los registros DNS para el VirtualHost como CNAME en lugar de A y AAAA?
No existe diferencia.
- ¿Para qué sirve el VirtualHost _default_ que se configuró en los archivos 000-default y default-ssl?
Es el VirtualHost con el que cargará el servidor principal (http o https), en nuestro caso "cervantes49.tech".
- ¿Para qué sirven las directivas ServerName y ServerAlias en la configuración de Apache HTTPD?, ¿en que secciones de la configuración se utilizan?
El ServerName es el nombre del servidor al que estamos apuntando, mientras que el ServerAlias es un nombre con el que queremos que se pueda acceder al mismo servidor pero con nombre distinto.
Se utiliza en la parte de configuración del Host, en los archivos .conf.
- ¿Cómo se verifica que la llave privada ubicada en /etc/letsencrypt/archive/example.com/cert1.pem corresponde al certificado ubicado en /etc/letsencrypt/archive/example.com/privkey1.pem?
- ¿Qué contienen los archivos /etc/letsencrypt/archive/example.com/chain1.pem y /etc/letsencrypt/archive/example.com/fullchain1.pem?, ¿en qué se relacionan con el certificado SSL cert1.pem?
El archivo chain1.pem contiene un certificado intermedio y el archivo fullchain1.pem contiene el certificado firmado(el cual esta en el archivo cert1.pem) y el intermedio concatenados.
- ¿Qué ventajas tiene elegir el tipo de instancia o Instance Type t3g.micro o t4g.micro sobre otras?
Son intancias de bajo costo y basadas en una arquitectura ARM.
- ¿Cuál podría ser la razón de que AWS ofrezca muy diversos tipos de instancia?
Para brindar intancias escalables a corde a las necesidades de los usuarios.
- Para el contexto de las actividades de esta práctica, ¿hay alguna diferencia entre realizar las actividades en una máquina virtual con arquitectura x86_64 y ARM?
Sí, la diferencia consiste en que si ocupamos una instancia x86 son más cara en comparación con la arquitectura ARM.
- ¿Qué es una IP Elástica?, ¿qué diferencia existe entre una IP elástica y la dirección IP que le es asignada a una instancia EC2 de manera predeterminada?
Una dirección IP elástica es como Amazon aws conoce a las direcciones IP estáticas que son direcciones únicas asignadas a un dispositivo de forma única, es decir, es una dirección exacta que nunca se modifica.
La diferencia es que esta IP elástica al momento de encender la maquina no se modifica, en cambio, si tuvieramos la IP que nos fue asignada por la instancia EC2 esta cambiaria cada vez que se reiniciará la máquina y tendriamos problemas de conexión pues siempre habrá una IP diferente.
- ¿Qué es una Imagen AMI y para qué sirve?
un AMI es una Imagen Machine la cual proporciona la información necesaria para lanzar una instancia.
- ¿Un usuario puede crear sus propias imágenes o depende de proveedores de terceros que las generen?
Amazon permite que los usuarios puedan modificar AMIS existentes.
- Ve el siguiente video, emite un comentario sobre los conceptos utilizados en esta práctica y haz un diagrama que muestre cómo es que llega una petición HTTP entre tu equipo local y la instancia EC2 hospedada en AWS
En el Video se muestra como el servicio VPC permite lanzar recursos de AWS en una red virtual aislada de forma lógica y este puede controlar todos los aspectos del entorno de red virtual, como la selección de su propio rango de direcciones IP, la creación de subredes y la configuración de tablas de enrutamiento, gateways de red así como los diferentes tipos de conexiones que acepta como lo son:
- Conexiones publicas.
- Puerta privada de enlace virtual.
- Interconexiones entre VPC.

## Conclusiones
La práctica fue levantar un Virtual Host, con lo que nos dejo fue una experiencia amplia en el uso de estas herramientas así como los posibles errores que nos podemos topar.
## Errores
En uno de nuestros intentos de levantar un servidor perdimos las llaves y con ello la conección, tuvimos que ocupar otro.