Acceder Registrarme

Configuración de HTTPS en Apache en el SO Ubunto sobre AWS (En una instancia EC2)


Por: Kevin Arnold Arias Figueroa Publicado el: 2024-02-11 00:52:19

Para configurar el acceso a los sitios de Apache a través de HTTPS, se deberá realizar lo siguiente:

Configuración a realizar sobre Apache

  1. Primero, haber adquirido el certificado SSL, y, específicamente, disponer de los siguientes archivos .crt y .key (la llave privada puede ser en formato txt).
  2. Subir el certificado y la llave privada a la instancia de AWS, ya que debe ser accesible desde el sistema opearativo, por ejemplo, se podría subir a una carpeta en la raiz "/sslcer", por lo que debe estar en una carpeta de esta (los archivos se pueden subir a través de un servidor FTP si está instalado en la instancia, o a través de un bucket de S3, para lo que se debería configurar aquello, previamente).
  3. Considerando que ya se tiene instalado Apache, en el EC2, se deberá editar el archivo de configuración para el protoclo HTTPS; dicho archivo se encuentra en apache sobre Ubuntu en la ruta "/etc/apache2/sites-available/default-ssl.conf", ahora, de no existir el archivo, ya sea por tener otra versión de apache o estar sobre otro sistema operativo, se deberá buscar aquel archivo de configuración.
  4. En el archivo anterior, se deberá editar las líneas o agregarlas dentro de la etiqueta del VirtualHost  (de no existir): SSLCertificateFile /sslcert/certificate.crt SSLCertificateKeyFile /sslcer/private.key
  5. Realizado lo anterior, finalmente se deberá ejecutar los siguientes 3 comandos: sudo a2ensite default-ssl.conf sudo a2enmod ssl sudo a2enmod headers, estos comados habilitarán la configuración del archivo default-ssl.conf que se modificó.

Configuración a realizar sobre/para la instancia de AWS

  1. Considerando que ya se tiene apuntando el dominio a la IP elástica enlazado a la instancia a través de Route 53, lo que se deberá hacer es apertuar en el grupo de seguridad asignado al EC2, el puerto 443 para HTTPS (Esto bastará para dejar acceder las peticiones a través de ese puerto, y claro, se debe permitir el tráfico desde toda IP externa, es decir, bajo el comodí de IP 0.0.0.0/0) - En este punto ya se puede probar las peticiones HTTPS y debería funciona son problemas.
  2. Finalmente, de ser requerido, se puede hacer el redireccionamiento de HTTP a HTTPS a través de un archivo .htaccess dentro del proyecto que se quiera, o, también se pupede configurar un balanceador de carga que apunte a la instancia, y, de esta manera, a través de los listeners del balanceador de carga, se puede redireccionar toda petición HTTP a HTTPS a través de los grupos de destino y destino EC2 final.