En este pequeño tutorial, aprenderás el procedimiento para instalar el certificado TLS/SSL en el servidor web NGIX. Cuando termine, todo el tráfico entre el servidor y el cliente se cifrará. Esta es una práctica estándar de protección de sitios de comercio electrónico y otros servicios en línea. Let’s Encrypt es el pionero en la implementación de SSL gratuito y se utilizará como proveedor de certificados en este caso.
Requisitos
- Acceso vía SSH
- Centos 7
- Privilegios de administrador (root)
Instalar Dependencias
Primero necesitaremos instalar cerbot vía el repositorio de EPEL, ya que este no viene por defecto en los repositorios de Centos:
[shell]sudo yum install -y epel-release mod_ssl[/shell]
Instalar Cerbot Nginx
[shell]sudo yum install certbot-nginx[/shell][/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]Obtener y Configurar el certificado SSL
Cerbot se encargará de la administración del certificado SSL. Generará uno nuevo para el dominio especificado en el parámetro.
Para este ejemplo se usara el dominio midominio.com
[shell]sudo certbot –nginx -d midominio.com
[/shell]
Si deseas generar para múltiples dominios o subdominios (por ejemplo www)
[shell]sudo certbot –nginx -d midominio.com -d www.midominio.com[/shell]
Nota: El primer dominio debe ser su dominio de base, en este ejemplo: midominio.com
.
Cuando instale el certificado, recibirá una guía paso a paso que le permitirá personalizar los detalles del certificado. Podrá elegir entre forzar HTTPS
o dejar HTTP
como protocolo predeterminado. También se requerirá proporcionar una dirección de correo electrónico, por razones de seguridad.
Cuando se complete la instalación, recibirá un mensaje similar:
[shell]IMPORTANT NOTES:
– If you lose your account credentials, you can recover through
emails 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 2019-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 have certificates and private keys obtained by Let’s
Encrypt so regular backups of this folder is ideal.
– If you like Let’s Encrypt, please consider supporting our work by:[/shell]
Configurar la renovación automática de certificados
En Let’s Encrypt los certificados son válidos por 90 días. Se recomienda renovarlo dentro de los 60 días, para evitar problemas. Para lograr esto, certbot nos ayudará con su comando de renovación. Verificará que el certificado tenga menos de 30 días de vencimiento:
[shell] sudo certbot renew [/shell]
Si el certificado instalado es reciente, certbot solo verificará su fecha de vencimiento:
[shell] 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.
[/shell]
Podemos automatizar este proceso de renovación mediante un trabajo de crontab Primero, abre el crontab:
[shell] sudo crontab -e
[/shell]
Con el siguiente trabajo se programará una auto renovación para ejecutarse todos los lunes a la medianoche:
[shell] 0 0 * * 1 sudo /usr/bin/certbot renew >> /var/log/sslrenew.log
[/shell]
La salida del script se guardará en el siguiente archivo /var/log/sslrenew.log
Conclusión
Con este pequeño procedimiento aseguraras tu servidor web NGINX implementando un certificado SSL gratuito. De ahora en adelante, todo el tráfico entre el servidor y el cliente está encriptado.