En este artículo, le mostraremos cómo instalar el cliente Let's Encrypt en su Ubuntu 20.04 VPS, emitir un certificado SSL para su dominio y configurarlo con el servidor web Apache.
Let's Encrypt es una organización de autoridad certificadora (CA) que permite a cualquier persona obtener un certificado SSL gratuito con comandos simples y automatizados. En este tutorial, usaremos una herramienta llamada certbot
, que es una parte oficial del esfuerzo de EFF para cifrar todo Internet. Gracias a esta práctica herramienta, configurar un certificado SSL para proteger a los visitantes de su sitio web y mejorar la seguridad de su sitio web nunca ha sido tan fácil. Todos los certificados SSL proporcionados por Let's Encrypt se pueden usar con fines de producción/comerciales sin ningún costo ni tarifa. Comencemos con la instalación y configuración.
Comencemos con la instalación:es una instalación simple y no llevará mucho tiempo.
Requisitos
- Para los propósitos de este tutorial, usaremos un VPS Ubuntu 20.04.
- Se requiere un usuario con privilegios sudo o acceso completo a la raíz SSH. Todos nuestros VPS vienen con acceso raíz.
- Un nombre de dominio válido dirigido a la dirección IP de su servidor. En este tutorial, usaremos
domain.com
como ejemplo.
1. Conéctese a su servidor
Antes de comenzar, debe conectarse a su servidor a través de SSH como usuario raíz. Para hacer esto, use el siguiente comando:
ssh root@IP_ADDRESS -p PORT_NUMBER
por supuesto, deberá reemplazar IP_ADDRESS
y PORT_NUMBER
con la dirección IP de su servidor real y el número de puerto SSH.
Una vez que haya iniciado sesión, asegúrese de que su servidor esté actualizado ejecutando los siguientes comandos:
sudo apt update sudo apt upgrade
2. Instale el servidor web Apache2
Elegimos usar uno de los servidores web más populares en nuestro artículo. Instalaremos Apache2 ya que necesitamos un servidor web en el que instalar el certificado SSL gratuito de Let's Encrypt. No tiene sentido tener un certificado SSL sin páginas web. Descubra algunas de las mejores alternativas gratuitas de Let's Encrypt.
Ejecute el siguiente comando para instalar Apache2:
sudo apt install apache2
Una vez que Apache2 esté instalado en su servidor, podrá usar los siguientes comandos para iniciar, detener y habilitar el servicio. Recomendamos habilitarlo para que Apache pueda iniciarse automáticamente cada vez que se reinicie su servidor.
sudo systemctl stop apache2.service sudo systemctl start apache2.service sudo systemctl enable apache2.service
Para confirmar que ha instalado correctamente Apache2, puede abrir su navegador web preferido y escribir la dirección IP de su servidor o su dominio (asumimos que apunta a su servidor) y debería poder ver la página predeterminada de Apache2 Ubuntu.
3. Configurar el host virtual de Apache
Ya que ahora tiene Apache instalado en su servidor, podemos continuar y mostrarle cómo crear un host virtual para el dominio que desea usar. Usaremos nano como nuestro editor, pero si no prefiere nano, puede usar cualquier editor de su elección y crear un nuevo archivo de configuración llamado domain.com.conf
.
sudo nano /etc/apache2/sites-available/domain.com.conf
Luego pegue la configuración de abajo en el archivo y reemplace todas las apariciones de domain.com
con su nombre de dominio real.
<VirtualHost *:80> DocumentRoot /var/www/html/domain.com ServerName domain.com ServerAlias www.domain.com <Directory /var/www/html/domain.com/> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Una vez que haya terminado de editar el archivo, guárdelo y ciérrelo.
Una vez que haya configurado el host virtual, puede habilitarlo ejecutando los siguientes comandos.
Deshabilite el host virtual preinstalado predeterminado con:
sudo a2dissite 000-default
luego, habilite el domain.com
servidor virtual:
sudo a2ensite domain.com.conf
Además, debe asegurarse de que el mod rewrite
está habilitado:
sudo a2enmod rewrite
Reinicie Apache para que los cambios surtan efecto.
sudo systemctl restart apache2.service
4. Instalar Certbot
Como se mencionó anteriormente, usaremos Certbot para poder obtener un certificado SSL gratuito de Let's Encrypt. Para instalar esta útil herramienta, debemos habilitar el universe
repositorio:
sudo apt install software-properties-common sudo add-apt-repository universe sudo apt update
Ejecute este comando en la línea de comandos de la máquina para instalar Certbot.
sudo apt install certbot python3-certbot-apache
5. Genere un certificado SSL gratuito de Let's Encrypt
Hay muchas formas de obtener un certificado SSL con Certbot. Usaremos el complemento de Apache, que se encargará de reconfigurar el host virtual de Apache y recargará la nueva configuración por nosotros. Puede ejecutar el siguiente comando para usar el complemento:
sudo certbot --apache
Con este script, debe responder una serie de preguntas y proporcionar una dirección de correo electrónico. En el primer paso, debe escribir una dirección de correo electrónico válida. La dirección de correo electrónico es necesaria para notificaciones y avisos de seguridad relacionados con el certificado de su sitio web:
Output: Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected]
El siguiente paso es confirmar que acepta los términos de servicio de Let's Encrypt. Si desea confirmar, simplemente escriba A y luego presione [ENTER]:
Output: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A
Si desea compartir la dirección de correo electrónico proporcionada con la EFF (Electronic Frontier Foundation) para recibir noticias y otra información, puede escribir Y. Si no desea recibir este tipo de correo electrónico, puede escribir N y enviar su respuesta por escribiendo [ENTRAR].
Output: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: N
Ahora debe seleccionar el dominio para el que desea activar HTTPS. Los dominios y subdominios enumerados en su símbolo del sistema se obtienen automáticamente de su configuración de host virtual de Apache. Escriba los números separados por comas o espacios, o si desea habilitar HTTPS para todos los dominios o subdominios, puede dejar el mensaje en blanco. De cualquier manera, presione [ENTER] para continuar con el siguiente paso.
Output: Which names would you like to activate HTTPS for? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: domain.com 2: www.domain.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c' to cancel):
El resultado será similar a este:
Output: Obtaining a new certificate Performing the following challenges: http-01 challenge for domain.com http-01 challenge for www.domain.com Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/domain.com-le-ssl.conf Deploying Certificate to VirtualHost /etc/apache2/sites-available/domain.com-le-ssl.conf Enabling available site: /etc/apache2/sites-available/domain.com-le-ssl.conf
Certbot proporciona la redirección HTTPS como una opción que puede habilitar. En este paso, el script le pedirá que seleccione si desea que todo el tráfico HTTP se redirija a HTTPS o que mantenga la configuración actual. Seleccione 1 si no desea la redirección o 2 para habilitar la redirección, luego presione [ENTRAR].
Output: Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Gran trabajo. Su certificado SSL ahora está instalado y cargado en la configuración de Apache. Verá un resultado similar al siguiente:
Output: Redirecting vhost in /etc/apache2/sites-enabled/domain.com.conf to ssl vhost in /etc/apache2/sites-available/domain.com-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://domain.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=domain.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/domain.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/domain.com/privkey.pem Your cert will expire on 2021-09-09. 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" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - 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
Para verificar que su nuevo certificado SSL esté configurado correctamente, visite https://domain.com/
en su navegador web y busque el icono de candado verde en la barra de direcciones URL. También puede usar un sitio web externo o herramientas para verificar si su certificado SSL está instalado correctamente.
6. Verificación de la renovación automática de Certbot
Los certificados SSL proporcionados por Let's Encrypt son válidos solo por 90 días. El Certbot que hemos instalado establecerá un cronjob que se encargará de renovar cualquier certificado SSL que se encuentre dentro de los treinta días posteriores a su vencimiento. Para comprobar el estado de este servicio, puede ejecutar el comando:
sudo systemctl status certbot.timer
Output: ● certbot.timer - Run certbot twice daily Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled) Active: active (waiting) since Thu 2021-06-11 11:33:00 UTC; 1h 37min ago Trigger: Thu 2021-06-11 15:52:01 UTC; 2h 41min left Triggers: ● certbot.service
o puede enumerar todos los temporizadores con:
sudo systemctl list-timers
Puede probar la renovación automática de sus certificados ejecutando este comando:
sudo certbot renew --dry-run
y el comando para renovar el certificado SSL se puede encontrar en una de las siguientes ubicaciones:
/etc/crontab/ /etc/cron.*/*
¡Felicidades! Ha instalado con éxito un certificado SSL gratuito de Let's Encrypt para su dominio.
En este artículo, le mostramos cómo instalar el servidor web Apache2 y Certbot, así como también cómo crear un servidor virtual Apache y, por supuesto, instalar un certificado SSL para su dominio. Su sitio web ahora debería ser seguro y renovarse automáticamente para permanecer así.
Por supuesto, si usted es uno de nuestros clientes de Managed Ubuntu Hosting, no tiene que instalar un certificado SSL de Let's Encrypt para su dominio por su cuenta; simplemente pregúntele a nuestros administradores, siéntese y relájese. Nuestros administradores instalarán un certificado SSL de Let's Encrypt en su Ubuntu 20.04 VPS inmediatamente, junto con muchas optimizaciones útiles que podemos hacer por usted.
Si le gustó esta publicación sobre cómo instalar Let's Encrypt en Ubuntu 20.04 con Apache, compártala con sus amigos en las redes sociales usando los botones de compartir a continuación, o simplemente deje un comentario en la sección de comentarios. Gracias.