Práctica 7: Implementación de sitios web sobre HTTPS#


Objetivos#

  • Asignar un nombre de dominio DNS que apunte a la máquina virtual
  • Instalar el servidor web Apache HTTPD y configurarlo para que responda a peticiones de HTTP y HTTPS
  • Configurar VirtualHosts para HTTP y HTTPS
  • Generar un certificado SSL con Let's Encrypt utilizando el cliente certbot

Elementos de apoyo#

Páginas de manual de Apache HTTPD

Restricciones#

  • La fecha límite de entrega es el viernes 10 de junio de 2022 a las 23:59 horas
  • Esta actividad debe ser entregada en equipo de acuerdo al flujo de trabajo para la entrega de tareas y prácticas
    • Utilizar la carpeta docs/practicas/practica-7/Equipo-ABCD-EFGH-IJKL-MNOP para entregar la práctica
      • Donde Equipo-ABCD-EFGH-IJKL-MNOP representa el nombre del equipo que debió anotarse previamente en la lista del grupo
    • Hacer un merge request a la rama practica-7 del repositorio de tareas para entregar la actividad

Danger

  • Esta actividad depende de los recursos implementados en la práctica 6
  • Se recomienda que se realice esta actividad siguiendo la calendarización con el objeto de dejar suficiente tiempo para la elaboración de las siguientes actividades

Procedimiento#

  1. Instala y configura Apache HTTPD en tu máquina virtual

  2. Configura el módulo SSL y tramita el certificado SSL válido con Let's Encrypt

  3. Configura los VirtualHosts en tu máquina virtual

  4. Valida la configuración, junta los archivos entregables y genera tu reporte


Entregables#

  • Archivo README.md

    • Anotar el nombre de dominio que se registró y la dirección IP pública de la máquina virtual
    • Explicación del procedimiento que se siguió para crear los recursos en Azure
    • Explicación del procedimiento que se siguió para registrar el nombre de dominio en FreeNom y asociarlo a la zona DNS en Azure
    • Explicación de los comandos utilizados para inicializar la máquina virtual en Azure
    • Salida de las consultas DNS para los registros SOA, NS, A y CNAME
    • Salida de los siguientes comandos en la máquina virtual como el usuario root
  • Carpeta img

    • Capturas de pantalla donde se muestren los recursos creados en Azure (máquina virtual y zona DNS)
    • Capturas de pantalla donde se muestre el registro del nombre de dominio en FreeNom
    • Cada captura de pantalla tiene que ser referenciada en el archivo README.md
  • Carpeta files

    • Archivos de configuración

      • Copia de seguridad de la configuración de Apache HTTPD en el directorio /etc/apache2

      root@example:~# tar -cvvf apache2.tar -C /etc/apache2 ./

      • Archivo /etc/apache2/conf-available/security.conf con comentarios que expliquen la funcionalidad de las directivas utilizadas
    • Archivos de bitácora

      • Archivo salida-mkdocs.log obtenido al convertir los archivos Markdown a HTML con mkdocs

      • Copia de seguridad de las bitácoras de Apache HTTPD

      root@example:~# tar -cvvzpf apache2-logs.tar.gz /var/log/apache2

    • Archivos de datos

      • Archivo virtualhosts.txt con el listado de VirtualHosts en la configuración de Apache HTTPD

      root@example:~# apachectl -S 2>&1 | tee virtualhosts.txt

      • Copia de seguridad del directorio /var/www

      root@example:~# tar -cvvf www.tar -C /var/www .

      • Copia de seguridad de los datos generados por certbot

      root@example:~# tar -cvvf letsencrypt.tar /etc/letsencrypt /var/lib/letsencrypt /var/log/letsencrypt


  • Archivo de datos registros-dns.txt donde vengan las consultas de todos los nombres DNS que generaste
Nombre Tipo Valor
example.com. A 20.213.120.169
docs.example.com. A 20.213.120.169
kernel.example.com. A 20.213.120.169
sitio.example.com. CNAME example.com.
tareas.example.com. CNAME sitio.example.com.
Consulta DNS

Puedes generar este archivo ejecutando el script de shell files/consulta-dns.sh


usuario@laptop ~ % chmod +x consulta-dns.sh
usuario@laptop ~ % ./consulta-dns.sh example.com 2>&1 | tee registros-dns.txt
    ...


  • Archivo de datos con el diagnóstico de consultas HTTP y HTTPS a la dirección IP y nombres DNS de los VirtualHosts
Consulta HTTP

Puedes generar este archivo ejecutando el script de shell files/consulta-http.sh


usuario@laptop ~ % chmod +x consulta-http.sh
usuario@laptop ~ % ./consulta-http.sh example.com 2>&1 | tee diagnostico-http.txt
    ...


  • Archivo de datos con el diagnóstico de certificados SSL que regresa cada VirtualHost configurado
Consulta SSL

Puedes generar este archivo ejecutando el script de shell files/consulta-ssl.sh


usuario@laptop ~ % chmod -c +x consulta-ssl.sh
usuario@laptop ~ % ./consulta-ssl.sh example.com 2>&1 | tee diagnostico-ssl.txt
    ...