Certificados Letsencrypt sin servidor web o sin resolver en el servidor web
Como obtener el certificado Letsencrypt para un dominio que no resuelve aun en una migración o nuevo servidor
Algunas veces es necesario hacer pruebas antes de levantar una migración en un nuevo servidor en producción.
Para ello, deberemos de forma manual, obtener un nuevo certificado basándonos en el desafio llamado challenge en el que solicitaremos el certificado porque tenemos capacidad de administración de la zona DNS. También se conoce como acme-dns-certbot
Requisitos
En este doc presuponemos que:
- Tienes cierto nivel de usuario Linux.
- Que tienes instalado certbot con snap. Si no, acude a las Instrucciones de Cerbot
- Que tienes instalado Python 3, lo cual es ya lo mas común en una instalación de Linux.
Instalar acme-cerbot
Una vez instalado necesitamos descargar el script de phyton que nos permitirá trabajar con este tipo de desafío, o validación mediante DNS.
Antes descargar nada, es buena práctica revisar el repositorio desde el que vamos a descargar el script. Antiguamente, no había forma salvo que conocieras un poco el programa y los sistemas implicados. Hoy día puedes usar si no alcanzas a esto, una chat de IA para que te verifique el scripts y te lo explique, como si fueras un novato en sistemas Linux y Python.
wget https://github.com/joohoi/acme-dns-certbot-joohoi/raw/master/acme-dns-auth.py
Lo hacemos ejecutable
chmod +x acme-dns-auth.py
Lo editamos para decirle que use Python 3
nano acme-dns-auth.py
#!/usr/bin/env python3
...
Una vez que hallamos realizado el cambio, movemos el fichero
sudo mv acme-dns-auth.py /etc/letsencrypt/
Configurar y usar acem-dns-cerbot
La cuestión es hora simple
sudo certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d \*.tu-dominio -d tu-dominio
Eso es una idea, basándonos en que tienes un * en tu zona dns. Pero puedes dejarlo en la simpleza del dominio normal, el que contiene www y otros como mail, etc. Pero el consejo es que todos resuelvan a la ip
Ejemplo ficticio que surge de tener todo lo que te pida respecto de la zona DNS del dominio solicitado.
Antes de darle a continuar Press Enter to Continue es evidente que ya has creado el registro en la zona del dominio, tal y como te solicitan, o de lo contrario fallará la generación del certificado Let's Encrypt.
certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d nodo1.midominio.tld
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for nodo1.midominio.tld
Hook '--manual-auth-hook' for nodo1.midominio.tld ran with output:
Please add the following CNAME record to your main DNS zone:
_acme-challenge.nodo1.midominio.tld CNAME cc94069f-6419-4c31-b079-d4408ec2bac6.auth.acme-dns.io.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Challenges loaded. Press continue to submit to CA.
Pass "-v" for more info about challenges.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/nodo1.midominio.tld/fullchain.pem
Key is saved at: /etc/letsencrypt/live/nodo1.midominio.tld/privkey.pem
This certificate expires on 2025-08-11.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Con esto ya puedes configurar el sitio de manera temporal, hasta que resuelva en la maquina. Después lo suyo seria revocarlo y comenzar un proceso normal, basado en web.
Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris
Si necesitas soporte profesional puedes contratar con Castris soporte profesional.