Cómo instalar un certificado SSL en un servidor web Apache
En este tutorial veremos el procedimiento que debes llevar a cabo si quieres instalar un certificado SSL en un servidor web Apache. Una vez que hayas terminado, todo el tráfico entre el servidor y el cliente será encriptado. Esto se ha convertido en un estándar para la seguridad de los sitios, especialmente aquellos de comercio electrónico.
Let’s Encrypt es un pionero en implementación SSL gratuita y puede ser usado como certificación de proveedor en algunos casos.
Tabla de Contenidos
¿Qué necesitas?
Antes de avanzar en esta guía, necesitarás:
- Acceso al SSH root (raíz) de CentOS 7 VPS
- El servidor web Apache con dominio y vhost correctamente configurado.
Paso 1 – Instalar los módulos dependientes
Para instalar cerbot tendrás que instalar el repertorio EPEL que no está disponible por default, mod_ssl también es requerido para que la encriptación sea reconocida por Apache.
Para instalar ambas dependencias tienes que ejecutar el comando:
yum install epel-release mod_ssl
Ahora deberías de poder proceder con la instalación de cerbot.
Paso 2 – Descargar el cliente Let’s Encrypt
Ahora tienes que instalar el cliente cerbot del repositorio EPEL:
yum install python-certbot-apache
Cerbot ahora debería de estar instalado y disponible para su uso.
Paso 3 – Instalar y configurar el certificado SSL en Apache
Cerbot manejará la administración del certificado SSL de una forma muy sencilla, generará un nuevo certificado para el dominio como un parámetro.
En este caso, ejemplo.com será usado como el dominio que se certificará:
certbot --apache -d ejemplo.com
Si quieres generar múltiples dominios o subdominios SSL, tienes que ejecutar este comando:
certbot --apache -d ejemplo.com -d www.ejemplo.com
Importante: El primer dominio debe de ser tu dominio base. En este caso es ejemplo.com.
Mientras se instala el certificado te encontraras con una guía paso-a-paso en la que podrás personalizar algunos detalles del certificado. Tendrás la opción de elegir entre forzar el HTTPS o dejar HTTP como el protocolo por default, se solicitará proporcionar un correo electrónico por propósitos de seguridad.
Una vez que hayas terminado la instalación verás un mensaje similar a este:
IMPORTANT NOTES: - If you lose your account credentials, you can recover through e-mails sent to user@example.com. - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire on 2016-04-21. To obtain a new version of the certificate in the future, simply run Let's Encrypt again. - Your account credentials have been saved in your Let's Encrypt 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 Let's Encrypt so making regular backups of this folder is ideal. - If you like Let's Encrypt, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
4.- Establecer la auto renovación del certificado
La certificación de Let’s Encrypt es válida por 90 días. Pero todas las webs profesionales recomiendan renovarlo cada 60 días para evitar cualquier problema. Para hacer esto, cerbot no ayudara con el comando renew. Revisará si al certificado le quedan menos de 30 días para expirar.
Tienes que ejecutar el siguiente comando para proceder:
certbot renew
Si la instalación del certificado es reciente, entonces cerbot solo revisará la fecha de expiración:
Processing /etc/letsencrypt/renewal/example.com.conf The following certs are not due for renewal yet: /etc/letsencrypt/live/example.com/fullchain.pem (skipped) No renewals were attempted.
Para hacer automático el proceso de renovación tienes que establecer un cronjob. Primero abre el crontab:
crontab -e
Este trabajo se puede programar para que corra todos los lunes a media noche:
0 0 * * 1 /usr/bin/certbot renew >> /var/log/sslrenew.log
La salida del script será enviada al archivo /var/log/sslrenew.log.
Conclusión
Ahora has asegurado tu servidor web Apache al implementar la mejor herramienta de seguridad: un certificado SSL gratis. Ahora todo el tráfico que haya entre tu servidor y el cliente estará encriptado.
Comentarios
enero 18 2021
esto puede aplicarse para los servidores de hostinger ?
febrero 09 2021
Hola Eduardo! Funciona sin inconvenientes si tienes instalado el servidor Apache en tu VPS. Saludos!