• ¡Obtenga la seguridad de la aplicación de la manera correcta! Detectar, proteger, monitorear, acelerar y más ...
  • Aprendamos a instalar el servidor HTTP Apache y asegurarlo con el certificado Let's Encrypt.

    Introduction

    Apache es uno de los servidores web HTTP más utilizados. Configurar el apache y asegurarlo con un certificado SSL es el primer paso que debe hacer para sus aplicaciones web.

    En este tutorial, aprenderá a configurar Apache para su sitio web en Ubuntu y CentOS. He probado esto en VM DigitalOcean.

    Para fines de demostración. Voy a usar el nombre de dominio de prueba test.sanakil.xyz, cual es sobrealimentado por Cloudflare.

    No te olvides de reemplazar el test.sanakil.xyz dominio con su dominio real. 📢

    DNS record creation

    Inicie sesión en Cloudflare o en el registrador de su dominio (si no es Cloudflare) y cree un Un registro para apuntar el dominio a la IP de la VM en la nube.

    Inicie sesión en su servidor en la nube a través de SSH.

    Installing Apache(Ubuntu)

    Para actualizar los paquetes disponibles

    sudo apt-get update

    Instalar apache

    sudo apt-get install apache2

    Permita los puertos 80 y 443 en su firewall para el servidor HTTP.

    sudo ufw allow 'Apache Full'

    Compruebe que su apache instalado se esté ejecutando correctamente

    sudo systemctl status apache2

    Installing Apache(CentOS)

    Actualice los paquetes disponibles.

    sudo yum update

    Instalar Apache

    sudo yum install httpd

    Agregue los puertos 80 y 443 en el firewall para acceder a la aplicación web.

    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload

    Inicie apache y verifique el estado de ejecución

    sudo systemctl start httpd
    sudo systemctl status httpd

    Create VirtualHost for the website

    Se puede crear un host virtual de dos formas, según el tipo de aplicación web / sitio web al que prestemos servicios.

    Supongamos que la aplicación ya tiene un servidor web como Node ejecutándose en un puerto. Podemos usar un proxy para servirlo en apache. O si la aplicación solo sirve los archivos como sitios estáticos. Podemos especificar el ruta de la aplicación para servir en apache.

    Cree un archivo de host virtual en apache: el archivo de configuración puede tener cualquier nombre. Pero mantenerlo con el nombre de dominio que vamos a servir en la aplicación web será mejor para una fácil identificación.

    Configuración adicional para CentOS

    En CentOS (SELinux), no todo está habilitado por defecto como Ubuntu.

    Tenemos que crear sitios habilitados y sitios disponibles carpetas en apache.

    sitios habilitados - le dice a apache que sirva al visitante con los archivos conf en él

    sitios disponibles - almacenar los archivos conf del host virtual

    sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

    Ahora dígale a Apache que lea el archivo conf en la carpeta habilitada para sitios.

    sudo vi /etc/httpd/conf/httpd.conf

    Agregue la siguiente línea al final del archivo

    IncludeOptional sites-enabled/*.conf

    Configure Apache to serve files

    • Cree una carpeta para servir su aplicación web
    sudo mkdir -p /var/www/test.sanakil.xyz/webapp
    sudo vi /var/www/test.sanakil.xyz/webapp/index.html
    • Pegue el siguiente fragmento de HTML para probarlo
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <title>Apache webapp</title>
    </head>
    <body>
    <h1>My Apache webapp is working in test.sanakil.xyz</h1>
    </body>
    </html>
    • Cree una carpeta para generar y almacenar registros
    sudo mkdir -p /var/www/test.sanakil.xyz/log
    sudo touch /var/www/test.sanakil.xyz/request.log
    sudo touch /var/www/test.sanakil.xyz/log/error.log
    Configuración de host virtual
    • Abrir archivo conf (Ubuntu)
    sudo vi /etc/apache2/sites-available/test.sanakil.xyz.conf
    • Abrir archivo conf (CentOS)
    sudo vi /etc/httpd/sites-available/test.sankil.xyz.conf
    • Pegue el fragmento de configuración siguiente cambiando su-nombre-de-dominio
    <VirtualHost *:80>
    ServerName test.sanakil.xyz
    ServerAlias test.sanaki.xyz
    DocumentRoot /var/www/test.sanakil.xyz/webapp
    ErrorLog /var/www/test.sankil.xyz/log/error.log
    CustomLog /var/www/test.sanakil.xyz/log/requests.log combined
    </VirtualHost>
    • Otorgue el permiso requerido para su carpeta.
    sudo chown -R $USER:$USER /var/www/test.sanakil.xyz
    sudo chmod -R 755 /var/www/test.sanakil.xyz
    Habilite su archivo de configuración de host virtual en apache (Ubuntu)
    sudo a2ensite test.sanakil.xyz.conf

    Deshabilite el archivo conf predeterminado por razones de seguridad

    sudo a2dissite 000-default.conf

    Reinicie Apache para que los cambios surtan efecto.

    sudo systemctl restart apache2

    Habilite su archivo de configuración de host virtual en apache (CentOS)

    Crea un enlace simbólico para apache

    sudo ln -s /etc/httpd/sites-available/test.sanakil.xyz.conf 
    /etc/httpd/sites-enabled/test.sanakil.xyz.conf

    Reinicie Apache para que los cambios surtan efecto.

    sudo systemctl restart httpd

    Enabling HTTPS

    Habilitar HTTPS en el servidor web apache en Ubuntu se ha facilitado mediante el uso de certbot y Vamos a cifrar. 

    Vamos a cifrar es una organización sin fines de lucro que proporcionó certificado SSL para millones de sitios web gratis.

    Certbot es un software que configurará HTTPS automáticamente para nuestro sitio web usando Let's encrypt.

    Agregar e instalar certbot para apache (Ubuntu)

    sudo add-apt-repository ppa:certbot/certbot
    sudo apt install python-certbot-apache

    Agregar e instalar certbot para apache (CentOS)

    sudo yum install epel-release
    sudo yum install certbot python2-certbot-apache mod_ssl

    Obtener certificado SSL

    sudo certbot --apache -d your-domain-name

    Si toda la verificación la realiza certbot sin ningún problema.

    Solicitará la redirección HTTPS. Seleccione la opción 2 e ingrese.

    Eso es.

    Si todo funciona correctamente, https://test.sanakil.xyz mostrará una página de índice HTML básico que hemos creado.

    Conclusión

    Espero que esto le dé una idea sobre cómo instalar e implementar un certificado SSL en Apache.

    A continuación, descubra cómo implementar un certificado en Nginx.