Certificados LetsEncrypt de Forma Permanente en Ubiquiti UDM/UDM-Pro
Cambiando el certificado autofirmado de Unifi Controller
Introducción
El certificado autofirmado que Unifi Controller trae de serie da algún que otro problema. Para tratar de solucionar este problema, me puse a investigar y encontré un script en Github llamado udm-le que permite generar certificados LetsEncrypt vía DNS, utilizando lego. El autor de dicho script es kchristensen.
En este artículo vamos a ver cómo utilizar el paquete UDM/UDMPro Boot Script junto con udm-le para poder generar y auto-renovar los certificados LetsEncrypt de forma persistente.
Instalación
Habilitando SSH
Lo primero que hay que hacer es habilitar la autenticación SSH en el UDM/UDM-Pro: (si no sabes la contraseña de acceso SSH puedes utilizar el botón para cambiar la contraseña)
Ahora para loguearnos utilizamos “Terminal” en macOS, la consola en Linux, o el Putty en Windows (no voy a abarcar como hacer conexiones SSH aquí, puedes buscar algún videotutorial).
Para conectarnos usamos los siguientes datos:
- Usuario:
root
- Servidor: IP de nuestro Gateway, por defecto
192.168.1.1
o lo que hayas configurado en las Redes Locales en el Unifi Controller.
Instalando UDM/UDM Pro Boot Script
Una vez conectados vía SSH, instalaremos el paquete UDM/UDM Pro Boot Script, que permite que el UDM, de forma persistente y a través de las actualizaciones, arranque los scripts bash que queramos. Para instalar dicho paquete ejecutamos los siguientes comandos:
unifi-os shell
curl -L https://udm-boot.boostchicken.dev -o udm-boot_1.0.4_all.deb
dpkg -i udm-boot_1.0.4_all.deb
exit
Instalando udm-le
Una vez hecho esto y siguiendo conectados al UDM/UDM-Pro, tenemos que copiar los siguientes comandos (se pueden copiar todos de una vez y pulsar enter para ejecutarlos) que permitirán “instalar” los scripts UDM-LE que permiten la generación y auto-renovado de los certificados:
curl -Lk0o /mnt/data/udm-le-master.zip https://codeload.github.com/kchristensen/udm-le/zip/master && \
unzip /mnt/data/udm-le-master.zip -d /mnt/data && \
mv /mnt/data/udm-le-master /mnt/data/udm-le && \
cp /mnt/data/udm-le/on_boot.d/99-udm-le.sh /mnt/data/on_boot.d/ \
chmod +x /mnt/data/on_boot.d/99-udm-le.sh && \
chmod +x /mnt/data/udm-le/udm-le.sh && \
rm /mnt/data/udm-le-master.zip
Ahora solo hay que configurar el archivo /mnt/data/udm-le/lego.env
configurando nuestro proveedor de dominio. Si como yo, utilizas OVH tienes que generar un API Token y cambiar los valores pertinentes, aquí podéis ver las variables de entorno que tenéis que añadir/cambiar.
vi /mnt/data/udm-le/lego.env
Una vez hecho esto debemos ejecutar el siguiente comando:
/mnt/data/udm-le/udm-le.sh initial
Esto nos pedirá reiniciar el UDM/UDM-Pro. Si hemos seguido correctamente todos los pasos, debería estar todo funcionando.
Desinstalación
Si en algún momento queremos desactivar todo esto y desinstalarlo bastará con ejecutar los siguientes comandos:
rm -f /mnt/data/on_boot.d/99-udm-le.sh
rm -fr /mnt/data/udm-le
Conclusión
No os olvidéis de la estrellita en Github para el proyecto UDM-LE y UDM-Utilities.
Si queréis comprar un UDM/UDM-Pro, podéis utilizar cualquiera de los siguientes enlaces para apoyar al blog, os costará lo mismo si lo compráis vía Amazon:
- UDM: https://amzn.to/31WmUjp
- UDM-Pro: https://amzn.to/3fagi4E