Saltar al contenido principal
aviso

Este tutorial es una contribución de la comunidad y no está respaldado por el equipo de Open WebUI. Solo sirve como una demostración de cómo personalizar Open WebUI para su caso de uso específico. ¿Quieres contribuir? Revisa el tutorial de contribución.

HTTPS usando Nginx

Asegurar una comunicación segura entre tus usuarios y Open WebUI es primordial. HTTPS (Protocolo seguro de transferencia de hipertexto) cifra los datos transmitidos, protegiéndolos de espías e intervenciones. Configurando Nginx como proxy inverso, puedes agregar HTTPS de manera sencilla a tu implementación de Open WebUI, mejorando tanto la seguridad como la confianza.

Esta guía proporciona tres métodos para configurar HTTPS:

  • Certificados autofirmados: Ideal para desarrollo y uso interno, utilizando Docker.
  • Lets Encrypt: Perfecto para entornos de producción que requieren certificados SSL confiables, utilizando Docker.
  • Windows+Autofirmados: Instrucciones simplificadas para desarrollo y uso interno en Windows, no se requiere Docker.

Elige el método que mejor se adapte a tus necesidades de implementación.

Nginx Proxy Manager

Nginx Proxy Manager (NPM) te permite gestionar fácilmente proxies inversos y proteger tus aplicaciones locales, como Open WebUI, con certificados SSL válidos de Lets Encrypt. Esta configuración habilita el acceso HTTPS, que es necesario para utilizar funciones de entrada por voz en muchos navegadores móviles debido a sus requisitos de seguridad, sin exponer directamente el puerto específico de la aplicación a internet.

Requisitos previos

  • Un servidor doméstico que ejecute Docker y el contenedor de open-webui en funcionamiento.
  • Un nombre de dominio (opciones gratuitas como DuckDNS o opciones de pago como Namecheap/GoDaddy).
  • Conocimiento básico de configuración de Docker y DNS.

Pasos

  1. Crear directorios para archivos de Nginx:

    mkdir ~/nginx_config
    cd ~/nginx_config
  2. Configurar Nginx Proxy Manager con Docker:

    nano docker-compose.yml
services:
app:
image: jc21/nginx-proxy-manager:latest
restart: unless-stopped
ports:
- 80:80
- 81:81
- 443:443
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt

Ejecuta el contenedor:

docker-compose up -d
  1. Configurar DNS y dominio:

    • Inicia sesión en tu proveedor de dominio (por ejemplo, DuckDNS) y crea un dominio.
    • Asigna el dominio a la IP local de tu proxy (por ejemplo, 192.168.0.6).
    • Si usas DuckDNS, obtén un token API desde su panel de control.
Aquí hay un ejemplo simple de cómo se hace en https://www.duckdns.org/domains :
  1. Configurar los certificados SSL:
  • Accede a Nginx Proxy Manager en http://server_ip:81. Por ejemplo: 192.168.0.6:81
  • Inicia sesión con las credenciales predeterminadas ([email protected] / changeme). Cambia las credenciales según se solicite.
  • Ve a SSL Certificates → Add SSL Certificate → Lets Encrypt.
  • Ingresa tu correo electrónico y el nombre de dominio que obtuviste de DuckDNS. Un nombre de dominio contiene un asterisco y otro no. Ejemplo: *.hello.duckdns.org y hello.duckdns.org.
  • Selecciona Usar un desafío DNS, elige DuckDNS y pega tu token API. Ejemplo: dns_duckdns_token=f4e2a1b9-c78d-e593-b0d7-67f2e1c9a5b8
  • Acepta los términos de Let’s Encrypt y guarda. Cambia el tiempo de propagación si es necesario (120 segundos).
  1. Crear Hosts de Proxy:
  • Para cada servicio (por ejemplo, openwebui, nextcloud), ve a Hosts → Proxy Hosts → Add Proxy Host.
  • Completa el nombre de dominio (por ejemplo, openwebui.hello.duckdns.org).
  • Configura el esquema como HTTP (predeterminado), activa Websockets support y apunta a tu IP de Docker (si Docker con open-webui está ejecutándose en el mismo ordenador que el administrador de NGINX, esta será la misma IP que antes: 192.168.0.6).
  • Selecciona el certificado SSL generado anteriormente, forza SSL y activa HTTP/2.
  1. Añade tu URL a open-webui (de lo contrario tendrás un error HTTPS):
  • Ve a tu open-webui → Admin Panel → Settings → General
  • En el campo de texto de Webhook URL, ingresa tu URL a través de la cual te conectarás a tu open-webui mediante el proxy inverso de Nginx. Ejemplo: hello.duckdns.org (no esencial en este caso) o openwebui.hello.duckdns.org (esencial en este caso).

Acceder a la WebUI:

Accede a Open WebUI vía HTTPS en hello.duckdns.org o openwebui.hello.duckdns.org (según cómo lo hayas configurado).

Nota sobre el firewall: Ten en cuenta que el software de firewall local (como Portmaster) podría bloquear el tráfico de la red interna de Docker o los puertos requeridos. Si experimentas problemas, verifica las reglas de tu firewall para asegurarte de que se permita la comunicación necesaria para esta configuración.

Próximos pasos

Después de configurar HTTPS, accede a Open WebUI de forma segura en:

Asegúrate de que los registros DNS estén configurados correctamente si estás usando un nombre de dominio. Para entornos de producción, se recomienda usar Lets Encrypt para certificados SSL confiables.