← posts
homelab · linux

Cómo Configurar HTTPS para servicios Internos

Cansado de tener que acordarte todas las IPs y puertos de tu HomeLab? Cansado de este cartel?

Hoy te traigo la solución!! Nginx Proxy Manager + Certificados!

Prerrequisitos

Para poder usar este post como guía, debes tener las siguientes cosas:

  • Un Dominio.
  • Una cuenta de Cloudflare.
  • Una instancia de NPM dedicada a tus servicios internos.
  • Opcional - Pero recomendado:

  • Un Servidor DNS Interno.
  • Configurar los registros DNS

    Lo primero que vamos a hacer es configurar los registros DNS de nuestro dominio para que apunte a nuestro reverse proxy. Esto lo haremos en nuestro servidor DNS Interno, donde crearemos los registros a partir de nuestro dominio.

    En mi caso uso AdGuard, debemos ir a la parte de Filters --> DNS Rewrites y crear los registros, esto lo podemos hacer de dos formas distintas: comprar un nuevo dominio reservado para los servicios internos o utilizar uno que ya tengamos, por ejemplo el de nuestra página web.

    Como se puede observar, en el primer caso creé un nuevo subdominio para el dominio de mi página web y en el segundo compré un nuevo dominio, el cual utilizo solo para registros internos. No importa cómo decidan hacerlo, lo importante es que el registro DNS debe apuntar a la IP de nuestro Reverse Proxy, en mi caso NPM.

    Certificados en Cloudflare y API Token

    Para esta parte del tutorial deberemos delegar nuestro dominio a Cloudflare para que ellos puedan brindarnos un certificado.

    Una vez que nuestro dominio aparezca en nuestra cuenta, deberemos crear un API Token del tipo "Editar Zona DNS" para poder configurar nuestros certificados. Guardá este token, ya que lo usaremos en el siguiente paso.

    Configuración en NPM

    Una vez tengamos el token, vamos a crear el certificado en NPM. Vamos a la sección de Certificates y hacemos click en "Add Certificate" y elegimos vía DNS. Una vez en ese menú ponemos nuestro dominio con un wildcard adelante y nuestro proveedor de DNS, que es Cloudflare. Luego nos pedirá el token que reclamamos antes.

    Con el certificado wildcard ya emitido, solo queda asignarlo a cada Proxy Host que tengas configurado en NPM apuntando a tus servicios internos. A partir de ahí, todos van a servir HTTPS con un certificado válido, sin que el navegador tire ninguna advertencia y sin depender de que cada servicio tenga que resolver su propio certificado.

    Y listo, así de simple es dejar de ver el cartel de "conexión no segura" cada vez que entrás a algo de tu HomeLab. Con esto ya tenés todos tus servicios internos sirviendo por HTTPS, con un solo certificado wildcard que se renueva automáticamente desde Cloudflare, sin necesidad de tocar nada más.

    Te sirvió?

    Como Contribuir:

    Invitame un café en cafecito.app