Instalar Let’s Encrypt en Apache sobre un servidor CentOS

Instalar Let’s Encrypt en Apache sobre un servidor CentOS y, otras distribuciones linux como Alma Linux y Rocky Linux.

Mejorar la seguridad de un sitio web usando el cifrado SSL, mejora considerablemente la confianza de los usuarios y, también el posicionamiento en Google. No hace muchos años, configurar SSL era una tarea ardua y compleja, hoy en día todo ha cambiado.

La irrupción de Let’s Encrypt revoluciono el modo de cifrar sitios web, al acercar al usuario final un método mucho más simple y económico a la hora de convertir hhtp a https. Let’s Encrypt es una autoridad certificadora (CA) gratuita y de código abierto, que permite obtener e instalar certificados usando unos sencillos comandos que automatizan todo el proceso.

Configurar el cifrado y aumentar la seguridad de tu sitio es muy fácil, incluso existen aplicaciones como por ejemplo paneles de control web, que realizan todo el proceso con tan solo hacer un simple clic. Let’s Encrypt, nos brinda un certificado SSL válido para nuestro dominio sin ningún costo, además permite su uso en modo comercial.

A petición de un usuario de nuestro Telegram, hoy vemos cómo instalar el cliente Let’s Encrypt en Apache sobre un servidor CentOS, Alma Linux, Rocky Linux y todos sus derivados. Estas instrucciones son válidas tanto para CentOS 7, como para CentOS 8.

Instalar Lets Encrypt en Apache

Instalar Let’s Encrypt en Apache

 

Instalar Let’s Encrypt en Apache

Antes de comenzar actualizamos nuestro servidor.

sudo dnf update

# o

sudo yum update

Ahora vamos a instalar LAMP.

sudo dnf install httpd mariadb-server php php-cli php-common

# o

sudo yum install httpd mariadb-server php php-cli php-common

Ejemplo…

[root@SoloLinux-demo ~]# dnf install httpd mariadb-server php php-cli php-common
Última comprobación de caducidad de metadatos hecha hace 0:02:29, el jue 08 jul 2021 10:48:58 CEST.
Dependencias resueltas.
================================================================================
 Paquete         Arq.   Versión                                 Repositorio
                                                                           Tam.
================================================================================
Instalando:
 httpd           x86_64 2.4.37-39.module_el8.4.0+778+c970deab   appstream 1.4 M
 mariadb-server  x86_64 3:10.3.28-1.module_el8.3.0+757+d382997d appstream  16 M
 php             x86_64 7.2.24-1.module_el8.2.0+313+b04d0a66    appstream 1.5 M
 php-cli         x86_64 7.2.24-1.module_el8.2.0+313+b04d0a66    appstream 3.1 M
 php-common      x86_64 7.2.24-1.module_el8.2.0+313+b04d0a66    appstream 661 k
Instalando dependencias:
 apr             x86_64 1.6.3-11.el8                            appstream 125 k
 apr-util        x86_64 1.6.1-6.el8                             appstream 105 k
 centos-logos-httpd
                 noarch 85.8-1.el8                              baseos     75 k
 httpd-filesystem
                 noarch 2.4.37-39.module_el8.4.0+778+c970deab   appstream  38 k
 httpd-tools     x86_64 2.4.37-39.module_el8.4.0+778+c970deab   appstream 106 k
 libaio          x86_64 0.3.112-1.el8                           baseos     33 k
 mailcap         noarch 2.1.48-3.el8                            baseos     39 k
 mariadb         x86_64 3:10.3.28-1.module_el8.3.0+757+d382997d appstream 6.0 M
 mariadb-common  x86_64 3:10.3.28-1.module_el8.3.0+757+d382997d appstream  64 k
 mariadb-connector-c
                 x86_64 3.1.11-2.el8_3                          appstream 200 k
 mariadb-connector-c-config
                 noarch 3.1.11-2.el8_3                          appstream  15 k
 mariadb-errmsg  x86_64 3:10.3.28-1.module_el8.3.0+757+d382997d appstream 234 k
 mod_http2       x86_64 1.15.7-3.module_el8.4.0+778+c970deab    appstream 154 k
 nginx-filesystem
                 noarch 1:1.14.1-9.module_el8.0.0+184+e34fea82  appstream  24 k
 perl-DBD-MySQL  x86_64 4.046-3.module_el8.1.0+203+e45423dc     appstream 156 k
 perl-DBI        x86_64 1.641-3.module_el8.1.0+199+8f0a6bbd     appstream 740 k
Instalando dependencias débiles:
 apr-util-bdb    x86_64 1.6.1-6.el8                             appstream  25 k
 apr-util-openssl
                 x86_64 1.6.1-6.el8                             appstream  27 k
 mariadb-backup  x86_64 3:10.3.28-1.module_el8.3.0+757+d382997d appstream 6.1 M
 mariadb-gssapi-server
                 x86_64 3:10.3.28-1.module_el8.3.0+757+d382997d appstream  51 k
 mariadb-server-utils
                 x86_64 3:10.3.28-1.module_el8.3.0+757+d382997d appstream 1.1 M
 php-fpm         x86_64 7.2.24-1.module_el8.2.0+313+b04d0a66    appstream 1.6 M
Activando flujos de módulos:
 httpd                  2.4                                                    
 mariadb                10.3                                                   
 nginx                  1.14                                                   
 perl                   5.26                                                   
 perl-DBD-MySQL         4.046                                                  
 perl-DBI               1.641                                                  
 php                    7.2                                                    

Resumen de la transacción
================================================================================
Instalar  27 Paquetes

Tamaño total de la descarga: 40 M
Tamaño instalado: 186 M
¿Está de acuerdo [s/N]?:

Iniciamos y habilitamos los servicios.

systemctl start httpd

systemctl start mariadb

systemctl enable httpd

systemctl enable mariadb

 

Creamos un virtual host con el nombre de tu dominio.

sudo nano /etc/httpd/conf.d/dominio.com.conf

Copia y pega lo siguiente, sin olvidar cambiar el nombre del dominio, por uno real.

<VirtualHost *:80>
    ServerAdmin admin@domain.com
    DocumentRoot "/var/www/html"
    DirectoryIndex index.html
    ServerName domain.com
    ErrorLog "/var/log/httpd/dominio.com.error_log"
    CustomLog "/var/log/httpd/dominio.com.access_log" common
</VirtualHost>

Guarda el archivo y cierra el editor.

Si quieres, puedes crear tu primera página…

sudo nano /var/www/html/index.html

Copia y pega…

<html>
Hola - Bienvenido a tu  servidor web Apache.
</html>

Guarda el archivo y cierra el editor. Es necesario agregar el usuario Apache, para tener acceso.

chown -R apache:apache /var/www/html/index.html

Imagen de ejemplo.

Instalar Lets Encrypt en Apache sobre un servidor CentOS

Instalar Let’s Encrypt en Apache sobre un servidor CentOS

 

Para obtener el certificado gratuito SSL, usaremos Cerbot. Certbot es una herramienta sencilla y fácil de usar, que simplifica la administración del servidor automatizando el proceso de obtención de certificados y, posterior configuración de los mismos.

Esta aplicación no viene en los repositorios oficiales, pero si en «Epel». Instalamos el repositorio Epel.

sudo dnf install epel-release

# o

sudo yum install epel-release
Instalar Lets Encrypt en Apache con el repositorio epel

Instalar Let’s Encrypt en Apache con el repositorio epel

Instalamos los paquetes requeridos dependiendo de la versión del SO.

# CentOS 8, Alma, Roky y derivados
sudo dnf install certbot python3-certbot-apache mod_ssl

# CentOS 7 y derivados
sudo yum install certbot python2-certbot-apache mod_ssl

Ejemplo…

[root@SoloLinux-demo ~]# yum install certbot python3-certbot-apache mod_ssl
Última comprobación de caducidad de metadatos hecha hace 0:00:21, el jue 08 jul 2021 11:40:53 CEST.
Dependencias resueltas.
=======================================================================================================================================
 Paquete                              Arquitectura      Versión                                             Repositorio           Tam.
=======================================================================================================================================
Instalando:
 certbot                              noarch            1.14.0-1.el8                                        epel                  51 k
 mod_ssl                              x86_64            1:2.4.37-39.module_el8.4.0+778+c970deab             appstream            134 k
 python3-certbot-apache               noarch            1.14.0-1.el8                                        epel                 143 k
Instalando dependencias:
 augeas-libs                          x86_64            1.12.0-6.el8                                        baseos               436 k
 libpath_utils                        x86_64            0.2.1-39.el8                                        baseos                34 k
 libtalloc                            x86_64            2.3.1-2.el8                                         baseos                49 k
 python3-acme                         noarch            1.14.0-1.el8                                        epel                  88 k
 python3-augeas                       noarch            0.5.0-12.el8                                        appstream             31 k
 python3-certbot                      noarch            1.14.0-1.el8                                        epel                 391 k
 python3-cffi                         x86_64            1.11.5-5.el8                                        baseos               237 k
 python3-chardet                      noarch            3.0.4-7.el8                                         baseos               195 k
 python3-configargparse               noarch            0.14.0-6.el8                                        epel                  36 k
 python3-configobj                    noarch            5.0.6-11.el8                                        baseos                68 k
 python3-cryptography                 x86_64            3.2.1-4.el8                                         baseos               559 k
 python3-distro                       noarch            1.4.0-2.module_el8.4.0+666+456f5f48                 appstream             37 k
 python3-idna                         noarch            2.5-5.el8                                           baseos                97 k
 python3-josepy                       noarch            1.8.0-1.el8                                         epel                 102 k
 python3-parsedatetime                noarch            2.5-1.el8                                           epel                  79 k
 python3-ply                          noarch            3.9-9.el8                                           baseos               111 k
 python3-pyOpenSSL                    noarch            19.0.0-1.el8                                        appstream            103 k
 python3-pyasn1                       noarch            0.3.7-6.el8                                         appstream            126 k
 python3-pycparser                    noarch            2.14-14.el8                                         baseos               109 k
 python3-pyrfc3339                    noarch            1.1-1.el8                                           epel                  19 k
 python3-pysocks                      noarch            1.6.8-3.el8                                         baseos                34 k
 python3-pytz                         noarch            2017.2-9.el8                                        appstream             54 k
 python3-requests                     noarch            2.20.0-2.1.el8_1                                    baseos               123 k
 python3-requests-toolbelt            noarch            0.9.1-4.el8                                         epel                  91 k
 python3-urllib3                      noarch            1.24.2-5.el8                                        baseos               177 k
 python3-zope-component               noarch            4.3.0-8.el8                                         epel                 313 k
 python3-zope-event                   noarch            4.2.0-12.el8                                        epel                 210 k
 python3-zope-interface               x86_64            4.6.0-1.el8                                         epel                 158 k
 sscg                                 x86_64            2.3.3-14.el8                                        appstream             49 k
Instalando dependencias débiles:
 python-josepy-doc                    noarch            1.8.0-1.el8                                         epel                  22 k

Resumen de la transacción
=======================================================================================================================================
Instalar  33 Paquetes

Tamaño total de la descarga: 4.4 M
Tamaño instalado: 17 M
¿Está de acuerdo [s/N]?:

Ya lo tenemos todo instalado, solo falta agregar los certificados a los dominios. Antes abrimos puertos.

firewall-cmd --zone=public --permanent --add-service=https

firewall-cmd --zone=public --permanent --add-service=http

firewall-cmd --reload
Lets Encrypt en Apache Abrir puertos

Let’s Encrypt en Apache – Abrir puertos

Instalar Let’s Encrypt en Apache sobre un servidor CentOS

 

Para solicitar el certificado de un dominio, ejecuta el siguiente comando:

certbot --apache -d dominio.com

Tambien puedes pedir varios certificados a la vez:

certbot --apache -d dominio.com -d www.dominio.com -d midominio.com -d demo.dominio.com

Rellena los datos solicitados.

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): admin@domain.com
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
Starting new HTTPS connection (1): supporters.eff.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for domain.com
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/httpd/conf.d/domain.com-le-ssl.conf
Deploying Certificate to VirtualHost /etc/httpd/conf.d/domain.com-le-ssl.conf

El siguiente paso es muy importante, si seleccionas la opción 1 se descargara un certificado y deberás configurarlo manualmente. Con la opción 2, todo se configura de forma automática. Te recomiendo la opción 2.

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

 

De forma predeterminada, los certificados Let’s Encrypt en Apache caducan a los 90 días. Puedes renovarlos de forma manual con el siguiente comando.

certbot renew --dry-run

De todas formas te recomiendo que agregues una tarea cron, que los renueve automáticamente.

crontab -e
* */12 * * * root /usr/bin/certbot renew >/dev/null 2>&1
Instalar Lets Encrypt en Apache con CentOS 7 8

Instalar Lets Encrypt en Apache con CentOS 7/8

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. Instalar Let’s Encrypt en Apache sobre un servidor CentOS.

Chat de SoloLinux en Telegram

 

Agregar comentario

1 logo sololinux

Suscríbete a SoloLinux

Recibe todos los nuevos artículos es tu correo electrónico

You have Successfully Subscribed!

Ir al contenido