Certificado SSL en Proxmox: Cloudflare, Let's Encrypt y Docker

Proxmox, Cloudflare, Docker y Let's Encrypt trabajando juntos
3 min. Lectura
0 Vistas
0 Valoración

El objetivo de este artículo es documentar los pasos para configurar la actualización dinámica de DNS con Cloudflare DDNS y obtener un certificado SSL para el servidor Proxmox. Al final del proceso, Proxmox estará asegurado con un certificado de Let's Encrypt, garantizando tanto la accesibilidad como la seguridad de los servicios.


Requisitos previos

  • Cuenta activa en Cloudflare con el dominio configurado y usando Cloudflare como DNS.
  • Docker instalado en Proxmox (ver artículo anterior de la serie).

Configurando Cloudflare DDNS

Creando el registro DNS

En el panel de Cloudflare, crea un nuevo registro DNS para tu dominio. De momento introduce una IP privada cualquiera, como 192.168.1.1. Más adelante cloudflare-ddns la actualizará automáticamente con tu IP pública real:

Añadimos un registro DNS con una IP privada temporal

Creando el API Token

Siguiendo las indicaciones de la página de cloudflare-ddns, necesitamos crear un API Token para que la herramienta pueda actualizar el registro DNS automáticamente. Ve a tu perfil en Cloudflare, sección API Tokens, y crea un nuevo token con permisos para editar los registros DNS de tu dominio:

Añadimos los permisos necesarios al token personalizado

Haz clic en Ir al resumen y luego en Crear token:

Resumen del token creado

Copia el token y guárdalo en un lugar seguro. Cloudflare no lo volverá a mostrar:

Token creado, hay que copiarlo y guardarlo

Ejecutando cloudflare-ddns en Docker

Con el token, el dominio y el subdominio a mano, construimos el comando. Sustituye los valores por los tuyos:

docker run --restart=always \
  -d \
  -e API_KEY=TU_API_TOKEN \
  -e ZONE=tu.dominio \
  -e SUBDOMAIN=tusubdominio \
  oznu/cloudflare-ddns

Nota: La imagen oznu/cloudflare-ddns lleva tiempo sin mantenimiento activo. Funciona, pero si buscas una alternativa más actualizada puedes explorar favonia/cloudflare-ddns, que es un fork mantenido por la comunidad.

Ejecuta el comando en la consola de Proxmox y espera la confirmación:

Cloudflare-ddns ejecutándose en Docker

Verifica que el contenedor está corriendo con docker ps:

Confirmamos que el contenedor está en ejecución

Con esto, tu registro DNS se actualizará automáticamente cada vez que cambie tu IP pública.

Configurando el certificado SSL

Obteniendo la Global API Key

Para crear el plugin ACME en Proxmox necesitamos la Global API Key de Cloudflare y el correo electrónico asociado a la cuenta. Encuéntrala en tu perfil de Cloudflare, en la sección de tokens de usuario, hacia la parte inferior de la página:

Obtenemos la Global API Key de Cloudflare

Vista del token API en Cloudflare

Creando el plugin ACME en Proxmox

En Proxmox, ve al nodo Datacenter → sección ACMEChallenge Plugins y crea un nuevo plugin con los datos obtenidos:

Sección ACME en el nodo Datacenter de Proxmox

Configuración del plugin ACME DNS con Cloudflare

Solicitando el certificado

En la sección de certificados del nodo Proxmox VE, crea un nuevo dominio usando el plugin que acabas de configurar:

Sección de certificados en el nodo Proxmox VE

Creación del dominio para el certificado

Finalmente, selecciona la cuenta y solicita el certificado:

Solicitamos el certificado SSL a Let's Encrypt

Conclusiones

Al completar este proceso, Proxmox queda accesible desde el exterior con un dominio propio y asegurado con un certificado SSL de Let's Encrypt que se renueva automáticamente. La combinación de cloudflare-ddns para mantener la IP actualizada y el plugin ACME para gestionar el certificado hace que todo funcione de manera desatendida.

¿Te ha sido útil?

Ayúdame a mejorar con tu puntuación y comentarios.

0.0 (0 votos)
Jaume Ferré

Jaume Ferré

Soy un entusiasta de las nuevas tecnologías, apasionado por explorar su potencial innovador. Colecciono CDs en formato físico y disfruto creando mezclas musicales. Además, la fotografía es otra de mis pasiones, capturando momentos y expresiones con cada disparo. ¡Gracias por leerme!

Comentarios

Los comentarios están gestionados por GitHub Discussions. Necesitas una cuenta de GitHub para participar. ¡Es gratis y rápido!