Introducción
Buen día, en esta ocasión quiero compartir como se realiza la creación de un certificado wildcard, o lo que es lo mismo, un certificado que puedas usar con tu dominio principal y con subdominio.
Digamos que tienes un dominio llamado supertienda.com, y deseas tener varios subdominios, como por ejemplo: www.supertienda.com, almacen.supertienda.com, webmail.supertienda.com, etc.
Inicialmente, cuando supe de Let's Encrypt y la ventaja de tener un certificado gratuito (se vale donar), me agrado mucho la idea, pero tenia que crear un certificado por cada dominio/subdominio que quería usar.
No hace mucho alguien me pregunto si podíamos crear un certificado de Let's Encrypt pero como wildcard, por lo que buscando encontramos y aquí el como.
Aclaración
Este proceso contempla el hecho de tener acceso al manejador de DNS (servicio/servidor), ya que se requiere realizar una configuración en dicho servicio para que funcione la creación del certificado
Primero lo primero
Dependiendo de la distribución que estes usando, tendras que instalar Certbot. Usualmente las distribuciones mas comunes ya lo tienen en sus repositorios, por lo que tendras que:
Ubuntu/Debian (y derivados)
sudo apt install certbot
Para Centos/RHEL/Fedora (y derivados)
sudo yum install certbot
Una vez instalado se procede con el siguiente paso.
Generando el certificado
Usualmente, para generar un certificado de forma "normal", solo se requiere ejecutar el comando de certbot y con algunos parametros, indicando tipo de servicio web (apache, nginx), entre otros parametros. Pero en este caso se pasaran parametros donde uno de ellos es definir el proceso manual.
certbot certonly --manual \
--preferred-challange=dns --email webmaster@supertienda.com \
-- server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d *.supertienda.com
Donde:
- --manual: Indica que la generación sera de forma manual e interactiva o utilizando un hook de shell
- --preferred-challenge: Indica que la validación sera a traves de la validación del DNS, usualmente utiliza el servicio de apache, nginx a traves del puerto 80 de la IP donde responde el dominio deseado.
- --server: Especifica el punto de generación del certificado. Actualmente solo acme-v02
- --agree-tos: Bandera. Aceptar Servidores ACME
- -d: Escpecifica el dominio deseado. Es aquí donde se pone el wildcard
Nota: Como se esta generando un certificado SSL wildcard, se indica el dominio con el *, como se muestra en el ejemplo.
Autenticando el dominio en el DNS
Para certificados Wildcard la unica autenticación es por DNS (challenge) para Let's Encrypt, el cual se invoca con el parametro preferred-challenge=dns.
Una vez que se ejecuta el comando con los parametros indicados, Certbot indicara el valor que hay que configurar en el DNS con el tipo TXT. El mensaje se mostrará como:
Please deploy a DNS TXT record under the name
_acme-challenge.supertienda.com with the following value:J50GNXkhGmKCfn-0LQJcknVGtPEAQ_U_WajcLXgqWqo
Los valores a rescatar son:
- Nombre del registro: _acme-challenge
- Valor: j50GNXkhGmKCfn-0LQJcknVGtPEAQ_U_WajcLXgqWqo
Revisando el registro TXT
El registro se tiene que generar del tipo TXT. Certbot se quedará a la espera a que se propague el registro del DNS. Para validar si el registro ya se propagó, puedes validar utilizando un servicio online, en caso probé en MxToolBox. Ahi se debe poner en la casilla como sigue:
Al validar, deberá mostrarte que encontro el registro (ya propagado por los servidores DNS). Se debe de la siguiente manera:
Certbot debe estar en esperá de la propagación, solo hay que darle enter para validar el registro. Si todo esta correcto debera mostrarte el mismo mensaje que muestra cuando se crea el certificado.
Con lo anterior queda generado el certificado. Esperando que sea de utilidad para más de alguno, nos leemos luego. Saludos
Comentarios
Publicar un comentario
Son bienvenidos tus comentarios, solo se respetuoso. Saludos