¿Cómo instalar Apache y asegurar con el certificado Let’s Encrypt?

Aprendamos cómo instalar el servidor Apache HTTP y asegurarlo con el certificado Let’s Encrypt.

Introducción

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

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

Para el propósito de demostración. Voy a usar el nombre de dominio de prueba prueba.sanakil.xyz, que está sobrealimentado por Cloudflare.

Creación de registros DNS

Inicie sesión en Cloudflare o en su registrador de 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.

Instalación de Apache (Ubuntu)

Actualizar los paquetes disponibles al día

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'

Verifique que su apache instalado funcione correctamente

sudo systemctl status apache2

Instalación de Apache (CentOS)

Actualice los paquetes disponibles al día.

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

Crear VirtualHost para el sitio web

Un host virtual se puede crear de dos maneras según el tipo de aplicación web/sitio web que servimos.

Supongamos que si 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 aplicacion a 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 a 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 de 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

Configurar Apache para servir archivos

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 probar

<!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>

Crear 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

sudo vi /etc/apache2/sites-available/test.sanakil.xyz.conf
sudo vi /etc/httpd/sites-available/test.sankil.xyz.conf

Pegue el siguiente fragmento de conf 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)

Crear 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

Habilitación de HTTPS

La habilitación de HTTPS en el servidor web apache en Ubuntu se ha simplificado mediante el uso de cerbot y Vamos a cifrar.

Let’s Encrypt es una organización sin fines de lucro que proporcionó un certificado SSL para millones de sitios web de forma gratuita.

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

Agregue e instale certbot para apache (Ubuntu)

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

Agregue e instale 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.

Le pedirá redirección HTTPS. Selecciona la opción 2 y entra.

Eso es todo.

Si todo funciona correctamente, https://test.sanakil.xyz mostrará una página de índice HTML básica 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.

Publicaciones relacionadas

Botón volver arriba