GNU/Linux >> Tutoriales Linux >  >> Panels >> Panels

Cómo instalar Let's Encrypt en Ubuntu 20.04 con Apache

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.


Panels
  1. Cómo instalar Apache en Ubuntu 18.04

  2. Cómo instalar Apache en Ubuntu 20.04

  3. Cómo instalar Elgg con Nginx en Ubuntu 14.04

  4. Cómo instalar Let's Encrypt SSL en Ubuntu 18.04 con Nginx

  5. Cómo instalar Joomla con Nginx en Ubuntu 18.04

Cómo instalar Let's Encrypt SSL en Ubuntu con Apache

Cómo instalar Nginx con Let's Encrypt SSL en Ubuntu 20.04 LTS

Cómo instalar Apache con Let's Encrypt SSL en Ubuntu 20.04 LTS

Cómo instalar Apache Tomcat 10 en Ubuntu 20.04 con Nginx

Cómo instalar Apache Tomcat 10 en Ubuntu 22.04 con Nginx

Cómo instalar Apache en Ubuntu 22.04