GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar Let's Encrypt SSL en Apache en Debian 11

Let's Encrypt es una autoridad de certificación que proporciona certificados SSL gratuitos para sitios web. Se lanzó en 2014 con el objetivo de que todos los sitios web fueran seguros y HTTP.

Además de ofrecer certificados SSL, también ayuda a la implementación y renovación automática de certificados. Let's Encrypt es la autoridad de certificación más grande del mundo, utilizada por más de 250 millones de sitios web.

Al escribir esta publicación, Let's Encrypt admite la instalación automática de certificados en Apache, Nginx, Plex y Haproxy.

Aquí, veremos cómo instalar el certificado Let's Encrypt SSL en Apache en Debian 11.

Requisitos

Instalar servidor web Apache

Le recomiendo que instale el servidor web Apache en su sistema antes de continuar.

LEER: Cómo instalar la pila LAMP en Debian 11

O

Usa el apt comando para instalar el servidor web Apache.

sudo apt update

sudo apt install -y apache2

Habilitar módulos

Use el siguiente comando para habilitar SSL y reescribir módulos.

sudo a2enmod ssl rewrite

Crear servidor virtual

Primero, necesitaremos crear un servidor virtual Apache para servir la versión HTTP de su sitio web.

sudo nano /etc/apache2/sites-available/www.itzgeek.net.conf

Utilice la siguiente configuración para su sitio web. Recuerde cambiar los valores según sus requisitos. Si no usa el subdominio www, puede eliminar el ServerAlias .

<VirtualHost *:80>

   ServerName itzgeek.net
   ServerAlias www.itzgeek.net
   ServerAdmin [email protected]
   DocumentRoot /var/www/html/www.itzgeek.net


   ErrorLog ${APACHE_LOG_DIR}/www.itzgeek.net_error.log
   CustomLog ${APACHE_LOG_DIR}/www.itzgeek.net_access.log combined


   <Directory /var/www/html/www.itzgeek.net>
      Options FollowSymlinks
      AllowOverride All
      Require all granted
   </Directory>

</VirtualHost>

Una vez que haya creado el archivo de configuración del host virtual, habilite el sitio.

sudo a2ensite www.itzgeek.net

A continuación, cree un directorio raíz para guardar los archivos de su sitio web.

sudo mkdir -p /var/www/html/www.itzgeek.net/

Luego, cambie la propiedad y el grupo del directorio.

sudo chown -R www-data:www-data /var/www/html/www.itzgeek.net/

Finalmente, coloque el archivo HTML de prueba en la raíz del documento del sitio web.

echo "This is a test site @ www.itzgeek.net" | sudo tee /var/www/html/www.itzgeek.net/index.html

Reinicie el servicio Apache para volver a leer las configuraciones.

sudo systemctl reload apache2

Crear/Actualizar Registro DNS

Para generar un certificado SSL de Let's Encrypt, deberá apuntar su dominio a la IP de su servidor. Entonces, vaya a su registrador de dominio y cree un registro A/CNAME para su dominio. Por ejemplo, la siguiente imagen muestra el registro A/CNAME para el dominio www.itzgeek.net.

NOTA:Después de realizar cambios en el registro DNS, deberá esperar de unos minutos a horas, según el TTL que haya establecido para el registro DNS.

Instalar certificado Let's Encrypt SSL en Apache

Instalar Certbot

El cliente Certbot ACME maneja la emisión e instalación del certificado sin tiempo de inactividad. Está disponible como paquete instantáneo para el sistema operativo Debian. Entonces, primero, instale el paquete Snapd.

sudo apt update

sudo apt install -y snapd

Luego, actualice el complemento a la última versión.

sudo snap install core; sudo snap refresh core

Finalmente, instale el cliente Certbot usando el comando snap y vincúlelo para que pueda invocar el comando certbot desde cualquier lugar, independientemente del directorio de trabajo actual.

sudo snap install --classic certbot

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Instalar certificado Let's Encrypt

Use el comando certbot para crear un certificado de Let's Encrypt y configure Apache para usar el certificado.

sudo certbot --apache

Deberá seguir las indicaciones interactivas e instalar el certificado. Dado que he creado un host virtual para itzgeek.net y www.itzgeek.net, también tendré que instalar certificados SSL para ambos dominios. Luego, redirigiré todo el tráfico a www.itzgeek.net a través de reglas de reescritura.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): [email protected] << Enter Email ID

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y  << Agree to Terms and Conditions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, 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 << Subscriber to Newsletter
Account registered.

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: itzgeek.net
2: www.itzgeek.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1,2 << Select the site to Install Let's Encrypt SSL Certificate
Requesting a certificate for itzgeek.net and www.itzgeek.net

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/itzgeek.net/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/itzgeek.net/privkey.pem
This certificate expires on 2022-01-21.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for itzgeek.net to /etc/apache2/sites-available/www.itzgeek.net-le-ssl.conf
Successfully deployed certificate for www.itzgeek.net to /etc/apache2/sites-available/www.itzgeek.net-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https://itzgeek.net and https://www.itzgeek.net

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

Una vez que active HTTPS para su dominio, el cliente de Certbot colocará las reglas de reescritura necesarias para redirigir el tráfico de HTTP al sitio HTTPS.

En mi caso, ha colocado dos reglas para las siguientes redirecciones.

  1. http://itzgeek.net>> https://itzgeek.net
  2. http://www.itzgeek.net>> https://www.itzgeek.net

Como puede ver, no se llega a la primera redirección a la versión www HTTPS del dominio. Por lo tanto, es posible que deba seguir la sección a continuación para configurarlo.

Redirigir solicitudes HTTP que no sean www a www HTTPS con Apache

Es posible que desee configurar el servidor web Apache para redirigir el tráfico desde el sitio HTTP que no es www al sitio WWW HTTPS, es decir, http://itzgeek.net>> https://www.itzgeek.net .

Edite el archivo de host virtual Let's Encrypt SSL (no su archivo de host virtual original).

sudo nano /etc/apache2/sites-available/www.itzgeek.net-le-ssl.conf

Agregue las siguientes reglas antes del </VirtualHost> . Cambie el nombre de dominio según sus requisitos.

    # Redirect NON-WWW HTTP to WWW HTTPS
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =itzgeek.net
    RewriteRule ^ https://www.itzgeek.net%{REQUEST_URI} [END,NE,R=permanent]1,L]

Luego, reinicie el servicio Apache.

sudo systemctl restart apache2

Verificar el certificado Let's Encrypt

Puede verificar el certificado de Let's Encrypt visitando su sitio web.

http://tu-http-sitio-web

O

https://tu-https-sitio-web

Debería obtener la versión HTTPS de su sitio ahora.

Certificado SSL de prueba

Pruebe su certificado Let's Encrypt SSL para detectar cualquier problema y sus clasificaciones de seguridad en la siguiente URL.

https://www.ssllabs.com/ssltest/analyze.html?d=www.itzgeek.net

Renovar el certificado de Let's Encrypt

Como sabes, los certificados de Let's Encrypt tienen una validez de 90 días y debes asegurarte de renovarlos a tiempo. El proceso de renovación ahora está automatizado y gracias al servicio systemd proporcionado por el cliente Certbot. Por lo tanto, no tiene que renovarlos manualmente.

Sin embargo, se recomienda probar las renovaciones de certificados simulando la renovación automática de certificados SSL ejecutando el siguiente comando.

sudo certbot renew --dry-run

Salida:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/itzgeek.net.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Account registered.
Simulating renewal of an existing certificate for itzgeek.net and www.itzgeek.net

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded: 
  /etc/letsencrypt/live/itzgeek.net/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Si el resultado confirma que la renovación de la prueba es exitosa, la renovación automática ocurrirá como se esperaba.

Conclusión

Eso es todo. Espero que haya aprendido a instalar el certificado SSL de Let's Encrypt en Apache en Debian 11.


Debian
  1. Cómo instalar Apache en Debian 9

  2. Cómo instalar Apache Cassandra en Debian 9

  3. Cómo instalar Apache Maven en Debian 10

  4. Cómo instalar Apache Maven en Debian 11

  5. Cómo instalar Let's Encrypt SSL con Apache en Debian 11

Cómo instalar Apache Tomcat en Debian 11

Cómo instalar WordPress con Apache y Let's Encrypt SSL en Debian 11

Cómo instalar Let's Encrypt SSL en Nginx en Debian 11

Cómo instalar y configurar Apache con Let's Encrypt TLS/SSL en Debian 11 Bullseye

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

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