Intalación de Let’s Encrypt, con validación por de DNS y wildcards

Hola!, Vamos a instalar un certificado con lets Encrypt, el cual es gratis pero debemos poner de trabajo, en este tutorial creare certificados para dominio, subdominio (soyprogramador.liz.mx) y wildcard (*.liz.mx), es decir creo un comodín para todos los subdominios que se desprendan del dominio principal. obviamente si creo certificado wildcard, no tendrá caso crear un certificado para un subdominio.

Paso 1 -Instalando Certbot

sudo apt-add-repository ppa:certbot/certbot
sudo apt install certbot
certbot --version
certbot 0.31.0

 

Paso 2 -Instalando acme-dns-certbot

Instalaremos un script que nos ayudara con la validación por DNS, pero antes debemos especificar la versión de pyhton.

wget https://github.com/joohoi/acme-dns-certbot-joohoi/raw/master/acme-dns-auth.py
chmod +x acme-dns-auth.py
nano acme-dns-auth.py

Agregamos el número 3 al final de python
!/usr/bin/env python3 

Paso 3 -Instalando certificado acme-dns-certbot y validando DNS

Generación de certificados para subdominio y dominio proncipal
sudo certbot certonly  --manual --preferred-challenges dns  -d 'soyprogramador.liz.mx' -d 'liz.mx'

Generación de certificado Wildcard
sudo certbot certonly  --manual --preferred-challenges dns -d '*.liz.mx'

El comando anterior nos dará la siguiente salida (Se muestra un fragmento),

Antes de continuar debemos realizar la configuración en nuestro DNS

Output from acme-dns-auth.py:
Please add the following CNAME record to your main DNS zone:
_acme-challenge.soyprogramador.mx CNAME b45ce5b2-f987-4c85-97bf-09a5764a88f6.auth.acme-dns.io.

Waiting for verification...

La configuración consiste en crear un registro TXT, con el valor indicado

Registro TXT: _acme-challenge.soyprogramador.liz.mx

Valor: b45ce5b2-f987-4c85-97bf-09a5764a88f6

Una vez realizado el registro, presionamos enter y la validación se llavara a cabo, Generalmente estos registro no deberían tardar mucho en propagarse, lo he realizado con CloudFlare y R53 de AWS Amazon

Después de la validación veremos lo siguiente:

Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/liz.mx/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/liz.mx/privkey.pem

Renovando certificado

Para la renovación de los certificados bastara con correr el siguiente comando, o bien se puede crear un demonio para que antes de su vencimiento se renueve.

sudo certbot renew

Configuración en Nginx

En nuestro archivo nginx se colocarian las siguientes lineas para validar cualquiera de nuestro subdominio *.liz.mx

listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/liz.mxfullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/liz.mx/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Resultado final:

Certificado instalado

Bye!

Leave a Reply

Your email address will not be published. Required fields are marked *