En este tutorial, le mostraremos cómo instalar Apache con Let's Encrypt SSL en Ubuntu 20.04 LTS. Para aquellos de ustedes que no lo sabían, Let's Encrypt es una autoridad de certificación que brinda Certificados SSL para sitios web. Todos los certificados SSL proporcionados por Let's Encrypt se pueden usar con fines de producción/comerciales sin ningún costo ni tarifa. Esta guía le informará sobre la instalación del servidor web Apache, la instalación de Certbot, la generación de un certificado SSL con Certbot y creando una configuración SSL adicional para obtener la A+ de los laboratorios SSL de prueba SSL.
Este artículo asume que tiene al menos conocimientos básicos de Linux, sabe cómo usar el shell y, lo que es más importante, aloja su sitio en su propio VPS. La instalación es bastante simple y asume que se están ejecutando en la cuenta raíz, si no, es posible que deba agregar 'sudo
' a los comandos para obtener privilegios de root. Le mostraré la instalación paso a paso de Apache con SSL gratis en Ubuntu 20.04 (Focal Fossa). Puede seguir las mismas instrucciones para Ubuntu 18.04, 16.04 y cualquier otra distribución basada en Debian como Linux Mint.
Requisitos previos
- Un servidor que ejecuta uno de los siguientes sistemas operativos:Ubuntu 20.04, 18.04, 16.04 y cualquier otra distribución basada en Debian como Linux Mint.
- Se recomienda que utilice una instalación de sistema operativo nueva para evitar posibles problemas.
- Acceso SSH al servidor (o simplemente abra Terminal si está en una computadora de escritorio).
- Un
non-root sudo user
o acceder alroot user
. Recomendamos actuar como unnon-root sudo user
, sin embargo, puede dañar su sistema si no tiene cuidado al actuar como root.
Instalar Apache con Let's Encrypt SSL en Ubuntu 20.04 LTS Focal Fossa
Paso 1. Primero, asegúrese de que todos los paquetes de su sistema estén actualizados ejecutando el siguiente apt
comandos en la terminal.
sudo apt update sudo apt upgrade
Paso 2. Instalación de Apache en Ubuntu 20.04.
De forma predeterminada, Apache está disponible en el repositorio base de Ubuntu 20.04. Ahora instalamos el servidor web Apache en el sistema Ubuntu ejecutando el siguiente comando a continuación:
sudo apt install apache2 apache2-utils
Antes de iniciar las configuraciones, asegúrese de que los servicios de Apache se estén ejecutando en su sistema. Ejecute el siguiente comando para verificar el estado de los servicios de Apache:
sudo systemctl status apache2 sudo systemctl start apache2 sudo systemctl enable apache2
Paso 3. Configure el cortafuegos.
Permita el acceso al puerto 80 en el cortafuegos ejecutando el siguiente comando:
sudo ufw allow 80 sudo ufw allow 443 sudo ufw enable
Paso 4. Configure el host virtual de Apache.
Primero, cree un directorio raíz para guardar los archivos de su sitio web:
sudo mkdir -p /var/www/html/your-domain.com/
Luego, cambie la propiedad y el grupo del directorio:
sudo chown -R www-data:www-data /var/www/html/your-domain.com/
Creemos un servidor virtual Apache para servir la versión HTTP de su sitio web:
sudo nano /etc/apache2/sites-available/your-domain.com.conf
Agregue la siguiente línea:
<VirtualHost *:80> ServerName your-domain.com ServerAlias www.your-domain.com ServerAdmin [email protected] DocumentRoot /var/www/html/your-domain.com ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined <Directory /var/www/html/your-domain.com> Options FollowSymlinks AllowOverride All Require all granted </Directory> </VirtualHost>
Guarde y cierre, luego reinicie el servidor web Apache para que se realicen los cambios:
sudo a2ensite your-domain.com.conf sudo a2enmod ssl rewrite sudo systemctl restart apache2
Paso 5. Proteja Apache con el certificado gratuito Let's Encrypt SSL.
Antes de instalar Certbot, habilitamos el repositorio del universo en su sistema:
sudo apt install software-properties-common sudo add-apt-repository universe sudo apt update
Luego, instale Certbot para Apache en su sistema Ubuntu:
sudo apt install certbot python3-certbot-apache
Finalmente, use el comando Certbot para crear un certificado Let's Encrypt y configure Apache para usar el certificado:
sudo certbot --apache
Salida:
------------------------------------------------------------------------------- Congratulations! You have successfully enabled https://your-domain.com and https://www.your-domain.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=your-domain.com https://www.ssllabs.com/ssltest/analyze.html?d=www.your-domain.com ------------------------------------------------------------------------------- IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/idroot.us/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your-domain.com/privkey.pem Your cert will expire on 2021-10-05. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Paso 5. Renovación automática de Certbot SSL.
Los certificados de Let's Encrypt tienen una validez de 90 días y debe asegurarse de que se renueven a tiempo. El proceso de renovación ahora está automatizado y gracias al systemd
servicio proporcionado por el cliente Certbot. Para comprobar que este proceso de renovación funciona correctamente, puede ejecutar:
sudo certbot renew --dry-run
Salida:
Saving debug log to /var/log/letsencrypt/letsencrypt.log - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Processing /etc/letsencrypt/renewal/your-domain.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Account registered. Simulating renewal of an existing certificate for your-domain.com and www.your-domain.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations, all simulated renewals succeeded: /etc/letsencrypt/live/your-domain.com/fullchain.pem (success) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Paso 7. Prueba SSL.
Ahora puede ir a ssllabs.com/ssltest/ y ejecutar una prueba de SSL en su dominio:
¡Felicitaciones! Ha instalado Apache correctamente con un certificado SSL gratuito. Gracias por usar este tutorial para instalar el servidor web Apache Let's Encrypt SSL en el sistema Ubuntu 20.04 LTS Focal Fossa. Para obtener ayuda adicional o información útil , le recomendamos que consulte el sitio web oficial de Apache.