GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar Let's Encrypt en CentOS 8 con Nginx

En este tutorial, explicaremos cómo instalar un certificado Let's Encrypt SSL gratuito en un VPS CentOS 8 con Nginx como servidor web.

Let's Encrypt es una autoridad de certificación gratuita, de código abierto y sin fines de lucro que proporciona certificados SSL gratuitos para que los sitios web habiliten el cifrado TLS. Fue desarrollado por el Grupo de Investigación de Seguridad de Internet (ISRG) y cuenta con la confianza de todos los principales navegadores. Se utiliza para automatizar el proceso de creación, validación, firma, implementación y renovación de certificados para sitios web seguros.

El objetivo principal de Let's Encrypt es promover el uso de SSL en la web y hacer conexiones encriptadas en Internet, manteniendo a todos más seguros en el proceso. El certificado es válido solo por 90 días, por lo que deberá renovarlo manualmente o configurar el sistema de renovación automática, que debe estar habilitado de forma predeterminada.

Actualmente, Let's encrypt admite la emisión de certificación automatizada para Apache, Nginx, Plex y HAproxy, lo que debería cubrir el caso de uso de casi todos. Comencemos con nuestra guía de instalación.

Requisitos

  • Para el propósito de este tutorial, usaremos un CentOS 8 VPS.
  • También se requiere acceso completo a la raíz SSH o un usuario con privilegios sudo. Todos nuestros VPS vienen con acceso raíz incluido de manera predeterminada sin costo adicional.
  • Un nombre de dominio válido apunta a su dirección IP de VPS.

Paso 1:Iniciar sesión y actualizar paquetes

Primero, necesitaremos iniciar sesión en nuestro servidor usando SSH. Puede hacerlo ingresando este comando:

ssh root@IP_Address -p Port_Number

Recuerde reemplazar "root" con su nombre de usuario si no está utilizando el usuario root. Cambie "IP_Address" y "Port_Number" según la dirección IP de su servidor y el número de puerto SSH. El número de puerto SSH predeterminado es 22.

Una vez que haya iniciado sesión, debe actualizar todos sus paquetes a sus últimas versiones disponibles.

dnf update -y

Una vez que se completen las actualizaciones, reinicie su sistema para aplicar los cambios.

Paso 2:Instalar Nginx y PHP

Primero, instale el servidor web Nginx y PHP ejecutando el siguiente comando:

dnf install nginx php php-fpm php-cli -y

Una vez que todos los paquetes estén instalados, inicie los servicios Nginx y PHP-FPM y habilítelos para que se inicien en el arranque con el siguiente comando:

systemctl start nginx
systemctl enable nginx
systemctl start php-fpm
systemctl enable php-fpm

Paso 3:Configurar PHP-FPM

De forma predeterminada, PHP-FPM está configurado para ejecutarse como usuario y grupo de Apache. En este tutorial, utilizaremos el servidor web Nginx. Esto significa que deberá configurar PHP-FPM para que se ejecute como usuario y grupo de Nginx.

Para hacerlo, edite el archivo de configuración de PHP-FPM:

nano /etc/php-fpm.d/www.conf

Cambie el valor de usuario y grupo de apache a nginx , como se muestra a continuación:

user = nginx
group = nginx

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio PHP-FPM para aplicar los cambios:

systemctl restart php-fpm

Paso 4:Cree un host virtual Nginx

Antes de comenzar, cree un sitio web de muestra para Nginx.

mkdir /var/www/html/yourdomain.com

A continuación, cree un archivo PHP de muestra dentro del directorio del sitio web y ábralo con su editor de texto preferido:

nano /var/www/html/yourdomain.com/index.php

Agregue las siguientes líneas al archivo:

<?php
phpinfo();
?>

Guarde y cierre el archivo, luego establezca la propiedad de su sitio web en nginx con el siguiente comando:

chown -R nginx:nginx /var/www/html/yourdomain.com/

A continuación, cree un nuevo archivo de configuración de host virtual de Nginx que sirva a su sitio web:

nano /etc/nginx/conf.d/yourdomain.com.conf

Agregue las siguientes líneas:

server {
server_name yourdomain.com;
root /var/www/html/yourdomain.com;
location / {
index index.php;
}
access_log /var/log/nginx/yourdomain.access.log;
error_log /var/log/nginx/yourdomain.error.log;
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}

Asegúrate de reemplazar todas las instancias de yourdomain con su nombre de dominio registrado.

Guarde y cierre el archivo, luego revise el archivo de configuración de Nginx para ver si hay errores de sintaxis con el siguiente comando:

nginx -t

Debería ver el siguiente resultado:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

A continuación, reinicie el servicio Nginx para aplicar los cambios de configuración:

systemctl restart nginx

Su servidor web ahora debería estar en funcionamiento.

Paso 5:Instale el cliente de Certbot

Para generar un certificado Let's Encrypt para su sitio web, deberá instalar el cliente Certbot en su sistema.

Certbot es una herramienta de línea de comandos que se utiliza para simplificar el proceso de obtención y renovación de certificados SSL de Let's Encrypt para su sitio web.

De forma predeterminada, el paquete Certbot no está disponible en el repositorio estándar de CentOS. Por lo tanto, deberá descargarlo del sitio web del proveedor.

Puede descargarlo e instalarlo con el siguiente comando:

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

Una vez que se haya instalado Certbot, ejecute el siguiente comando para obtener e instalar un certificado SSL para su sitio web:

certbot-auto --nginx -d yourdomain.com

El comando anterior instalará primero todas las dependencias requeridas en su servidor. Una vez instalado, se le pedirá que proporcione una dirección de correo electrónico y acepte los términos del servicio, como se muestra a continuación:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): [email protected]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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

Escriba N si no desea compartir su correo electrónico con la EFF, luego presione Enter para continuar. Una vez que se haya instalado el certificado, debería ver el siguiente resultado:

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for yourdomain.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/yourdomain.com.conf
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/yourdomain.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://yourdomain.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=yourdomain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/yourdomain.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/yourdomain.com/privkey.pem
Your cert will expire on 2020-08-30. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again with the "certonly" option. To non-interactively renew *all*
of your certificates, run "certbot-auto 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
- We were unable to subscribe you the EFF mailing list because your
e-mail address appears to be invalid. You can try again later by
visiting https://act.eff.org.

Ahora, su sitio web está protegido con Let's Encrypt SSL. Puede probar su certificado SSL utilizando una herramienta en línea.

Paso 6:Acceda a su sitio web

Ahora, abra su navegador web y acceda a su sitio web de forma segura utilizando la URL https://yourdomain.com .

Debería ver la siguiente página:

En la página anterior, debería poder ver que el sitio está correctamente protegido, generalmente con un ícono de candado verde en el borde izquierdo de la barra de direcciones.

Paso 7:configurar la renovación automática

Ahora que hemos instalado Let's Encrypt en nuestro CentOS 8 VPS, debemos asegurarnos de que nuestro certificado permanezca renovado y válido.

De forma predeterminada, los certificados de Let's Encrypt tienen una validez de 90 días. Se recomienda renovar el certificado antes de que caduque, ya que un certificado caducado dará a los usuarios una advertencia de seguridad cuando intenten visitar su sitio web.

Puede probar el proceso de renovación manualmente con el siguiente comando.

certbot-auto renew --dry-run

El comando anterior verificará automáticamente los certificados actualmente instalados e intentará renovarlos si faltan menos de 30 días para la fecha de vencimiento.

También puede agregar un cronjob para ejecutar automáticamente el comando anterior dos veces al día.

Para hacerlo, edite el archivo crontab con el siguiente comando:

crontab -e

Agregue la siguiente línea:

* */12 * * *   root /usr/local/bin/certbot-auto renew >/dev/null 2>&1

Siempre puede cambiar el intervalo de este cronjob si dos veces al día es demasiado frecuente ajustando los valores en el extremo izquierdo.

Guarde y cierre el archivo. Ahora su certificado se renovará regularmente. ¡Felicidades! Ya ha instalado Let's Encrypt en su servidor CentOS 8 con Nginx.

Configurar un sitio web con todos los complementos y funciones que necesita puede llevar mucho tiempo y esfuerzo que podría gastar en administrar su negocio. Si usa uno de nuestros servicios de hospedaje CentOS 8 administrados, haremos todo el trabajo duro por usted. Desde el mantenimiento del servidor hasta las solicitudes de instalación y configuración, cubrimos todo lo que necesita para mantener su servidor en plena forma, todo sin costo adicional.

Si este tutorial lo ayudó a configurar su sitio web Nginx con SSL en su CentOS 8 VPS, considere dejar un comentario en nuestra sección de comentarios o compartir esta publicación en las redes sociales utilizando nuestros accesos directos para compartir. Gracias.


Cent OS
  1. Asegure Nginx con Lets Encrypt en CentOS 7

  2. Cómo instalar WordPress con Nginx en CentOS 7

  3. Cómo instalar phpMyAdmin con Nginx en CentOS 7

  4. ¿Cómo instalar Let's Encrypt (Certbot) en CentOS 8?

  5. Cómo instalar Let's Encrypt en CentOS 8 con Nginx

Cómo instalar Nginx con PHP-FastCGI en CentOS 6

Cómo instalar Magento con Nginx en CentOS 7

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

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

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

Cómo instalar Nginx con Let's Encrypt SSL en Fedora 35