Certificados LetsEncrypt de Forma Permanente en Ubiquiti UDM/UDM-Pro

Cambiando el certificado autofirmado de Unifi Controller

Gabriel Trabanco
DotTech
3 min readFeb 3, 2021

--

Unifi Logo

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)

Screensave of UDM SSH Access

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:

--

--