En este tutorial, le mostraremos cómo instalar el cliente Let's Encrypt en su CentOS 7 VPS y emitir un certificado SSL para su dominio.
Mejorar la seguridad de su sitio web a través del cifrado SSL puede aumentar la confianza de sus visitantes en su sitio web. En el pasado, configurar el cifrado SSL en un sitio web era una tarea complicada. Sin embargo, Let's Encrypt es una autoridad de certificación (CA) gratuita y de código abierto que permite obtener e instalar certificados a través de comandos simples y automatizados. Gracias a ellos, configurar el cifrado y aumentar la seguridad de su sitio es mucho más fácil. Let's Encrypt proporciona un certificado SSL válido para su dominio sin ningún costo y también puede usarse para producción/uso comercial.
Comencemos con la instalación:es una instalación simple y no llevará mucho tiempo.
Requisitos
- Para los fines de este tutorial, utilizaremos un VPS CentOS 7.
- También se requiere acceso completo a la raíz SSH o un usuario con privilegios sudo.
- Un nombre de dominio válido dirigido a la dirección IP de su servidor. En este tutorial usaremos
domain.com
.
Paso 1:Conéctese a través de SSH y actualice el sistema operativo
Conéctese a su servidor a través de SSH como usuario raíz usando el siguiente comando:
ssh root@IP_ADDRESS -p PORT_NUMBER
Recuerde reemplazar "IP_ADDRESS" y "PORT_NUMBER" con la dirección IP y el número de puerto SSH respectivos de su servidor.
Antes de comenzar con la instalación, deberá actualizar los paquetes de su sistema operativo a sus últimas versiones. Es fácil de hacer y no te llevará más de unos minutos.
Puede hacerlo ejecutando el siguiente comando:
yum update
Una vez que se completan las actualizaciones, podemos pasar al siguiente paso.
Paso 2:Instalar LAMP Stack
Necesitamos instalar la pila LAMP en el servidor. Consiste en Linux (que ya tenemos), Apache, MySQL y PHP. Podemos instalarlo ejecutando el siguiente comando:
yum install httpd mariadb-server php php-cli php-common
Una vez que todos los paquetes estén instalados, inicie los servicios de Apache y MariaDB:
systemctl start httpd systemctl start mariadb
Permita que se inicien en el arranque del servidor con el siguiente comando:
systemctl enable httpd systemctl enable mariadb
Paso 3:Configurar Apache
Necesitamos crear un nuevo archivo de configuración de Apache. Podemos crearlo con el siguiente comando:
nano /etc/httpd/conf.d/domain.com.conf
Agregue las siguientes líneas:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/var/www/html" DirectoryIndex index.html ServerName domain.com ErrorLog "/var/log/httpd/domain.com.error_log" CustomLog "/var/log/httpd/domain.com.access_log" common </VirtualHost>
Guarde y cierre el archivo.
Luego, crea un index.html
archivo con fines de prueba con el siguiente comando:
nano /var/www/html/index.html
Agregue las siguientes líneas:
<html> Test - Welcome to The Apache Web Server. </html>
Guarde el archivo y cambie el propietario del archivo '/var/www/html/index.html' al usuario de Apache para que Apache pueda leer el archivo:
chown -R apache:apache /var/www/html/index.html
Recuerda cambiar domain.com
con su nombre de dominio real.
Ahora que tenemos Apache instalado, podemos continuar e instalar certbot
.
Paso 4:Instalar Certbot
Necesitamos instalar Certbot y habilitar el mod_ssl
Módulo Apache en el servidor. Certbot es una herramienta simple y fácil de usar que simplifica la administración del servidor al automatizar la obtención de certificados y configurar los servicios web para usarlos.
De forma predeterminada, el paquete Certbot no está disponible en el repositorio del sistema operativo predeterminado de CentOS 7. Necesitamos habilitar el repositorio EPEL, luego instalar Certbot.
Para agregar el repositorio EPEL ejecute el siguiente comando:
yum install epel-release
Una vez habilitado, instale todos los paquetes necesarios con el siguiente comando:
yum install certbot python2-certbot-apache mod_ssl
Una vez instalado, podemos continuar con el siguiente paso.
Paso 5:Obtenga e instale SSL para su dominio
Ahora que Certbot está instalado, puede usarlo para obtener e instalar un certificado SSL para su dominio.
Simplemente ejecute el siguiente comando para obtener e instalar un certificado SSL para su dominio:
certbot --apache -d domain.com
También podemos instalar un solo certificado para múltiples dominios y subdominios alojados en el servidor con el indicador '-d', por ejemplo:
certbot --apache -d domain.com -d www.domain.com -d domain2.com -d test.domain2.com
Se nos pedirá que proporcionemos una dirección de correo electrónico y aceptemos los términos del servicio.
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] 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
Escriba Y y presione [Enter], y debería ver el siguiente resultado:
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
Aquí, debe elegir cualquier opción para continuar. Si elige la opción 1, solo descargará un certificado SSL y deberá configurar Apache manualmente para usar el certificado SSL. Si elige la opción 2, automáticamente descargará y configurará Apache para usar el certificado SSL. En este caso, elija la opción 2 y presione [Enter]. Cuando la instalación finalice con éxito, verá un mensaje similar a este:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://domain.com
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/domain.com-0001/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/domain.com-0001/privkey.pem Your cert will expire on 2019-10-22. 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" - 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
Los archivos de certificado generados están disponibles en /etc/letsencrypt/live/domain.com
directorio. Puede verificar el certificado SSL recién creado con el siguiente comando:
ls /etc/letsencrypt/live/domain.com/
Debería ver el siguiente resultado:
cert.pem chain.pem fullchain.pem privkey.pem
Paso 6:Verifique su certificado SSL
Abra su navegador web y escriba la URL https://domain.com
. Para comprobar el certificado SSL en Chrome, haga clic en el icono del candado en la barra de direcciones de https://domain.com y, en el cuadro emergente, haga clic en "Válido" en el mensaje "Certificado".
Paso 7:configurar la renovación automática
De forma predeterminada, los certificados de Let's Encrypt tienen una validez de 90 días, por lo que se recomienda renovar el certificado antes de que caduque. Idealmente, sería mejor automatizar el proceso de renovación para verificar y renovar periódicamente el certificado.
Podemos probar el proceso de renovación manualmente con el siguiente comando.
certbot 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 podemos agregar un cronjob para ejecutar automáticamente el comando anterior dos veces al día.
Para hacerlo, edite el crontab con el siguiente comando:
crontab -e
Agregue la siguiente línea:
* */12 * * * root /usr/bin/certbot renew >/dev/null 2>&1
Guarde y cierre el archivo.
¡Felicidades! Hemos instalado y configurado correctamente Let's Encrypt con Apache en un VPS CentOS 7.
Por supuesto, no tiene que instalar Let's Encrypt en CentOS 7 si usa uno de nuestros planes de alojamiento de VPS administrados, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que instalen Let's Encrypt en su CentOS 7 VPS por usted. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.
PD . Si le gustó esta publicación sobre cómo instalar Let's Encrypt en CentOS 7 , o si lo encontró útil, compártalo con sus amigos en las redes sociales usando los botones de compartir, o simplemente deje una respuesta a continuación. Gracias.