Cómo instalar Let´s Encrypt paso a paso
Hoy en día tener una página web si certificado digital SSL es una locura, ya no sólo por la seguridad, sino porque Google nos penalizará. Todavía hay muchísimas webs sin SSL. Se puede entender que haya gente que no quiera pagar por un certificado SSL, pero todavía encuentro empresas con su web sin SSL. En cheapssl.com podemos obtener SSL por $10 al año! En fin, sin aun así vemos caro gastarnos ese dinero podemos usar los certificados gratuitos de Let’sEncrypt. Let’s Encrypt es freem automated and open certificate authority.
Bueno os mostraré como instalarlo. Podéis ver cómo funciona en el siguiente LINK
Voy a usar un servidor Web con NGINX corriendo sobre CentOS7. Decir que Let´s Encrypt lo podemos usar tanto en RedHat/CentOS como en Debian/Ubuntu o incluso en cPanel.
Primero de todo instalaremos certbot para nginx.
yum install certbot-nginx
Una vez instalado es muy sencillo el generar el certificado.
cerbot --nginx --d dominio.com --d www.dominio.com
Cuando generamos un certificado, lo primero de todo es que nuestro dominio apunte a nuestro servidor, es lo primero que va a validar Let´s Encrypt, que nuestro registro DNS de dominio.com apunte a la IP desde donde estamos lanzando cerbot.
Indicaremos una cuenta de email, Aceptamos los Terms of Service y nos pregunta si deseamos recibir información.
Genera archivos de configuración con el certificado y su ruta y nos preguntará si queremos redirigir el tráfico de http a https.
Una vez creado para mejorar la seguridad mejoraremos los parámetros Diffie-Hellman, básicamente que entre nuestro servidor y el usuario el intercambio de información sea más seguro. Para ello haremos lo siguiente.
openssl dhparam –out /etc/letsencrypt/dhparam.pem 2048 (OJO esto tardará un par de horas en acabar ).
Seguidamente tenemos crea agregar en nuestro crontab el siguiente comando para que cerbot vaya renovando nuestro certificado SSL.
El certificado SSL de Let´s Encrypt tiene una valided de 2 meses por eso hay que ir renovándolo.
Si vamos a la configuración de nginx, veremos que nos ha agregado la ruta de los certificados.
Y modifica la configuaración para redirigir tráfico de http a https.
Con ésto ya tendremos nuestro certificado SSL listo!
Norman trabaja como Administrador de Sistemas con más de 12 años de experiencia en entornos Windows, Linux, VMware, SAN, Redes. | MCSA | CCNA | VCP-DCV | vExpert
Holaa Norman, excelentísimo artículo ante todo 😉
Te comento el siguiente problema encontrado al intentar hacerlo en un entorno virtualizado desde Proxmox, por el detalle del error es por seguramente estar usando los DNS internos de systemd-resolve desde Ubuntu 18.04 hay forma de hacerlo así sin tener por delante ese servicio ajeno a la máquina?
root@tomcatsrv02:~# certbot certonly \
> -d tomcatsrv02.testing.com \
> –noninteractive \
> –standalone \
> –agree-tos \
> –register-unsafely-without-email
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Registering without email!
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for tomcatsrv02.testing.com
Waiting for verification…
Cleaning up challenges
Failed authorization procedure. tomcatsrv02.testing.com (http-01): urn:ietf:params:acme:error:dns :: DNS problem: NXDOMAIN looking up A for tomcatsrv02.testing.com – check that a DNS record exists for this domain
IMPORTANT NOTES:
– The following errors were reported by the server:
Domain: tomcatsrv02.testing.com
Type: None
Detail: DNS problem: NXDOMAIN looking up A for
tomcatsrv02.testing.com – check that a DNS record exists for this
domain
– 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.
root@tomcatsrv02:~# systemd-resolve –status
Global
Link 2 (ens18)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 8.8.8.8
9.9.9.9
DNS Domain: testing.com