Cómo acceder a OpenClaw con tu dominio y HTTPS

Configura DNS, nginx, el proxy seguro y un certificado Let's Encrypt para acceder a OpenClaw por HTTPS sin exponer el puerto del Gateway.

Un dominio con HTTPS permite acceder al Gateway desde Internet manteniendo su autenticación. nginx recibe la conexión cifrada y la entrega al Gateway por loopback. El puerto 18789 sigue cerrado desde fuera.

Antes de empezar

  • Completa Cómo empezar con tu VPS OpenClaw de forma segura y conserva el túnel SSH como recuperación.
  • Estos pasos son para un VPS dedicado a OpenClaw y sin otro nginx configurado. Si ya hay sitios o certificados, no sustituyas su configuración: adapta el cambio con tu administrador.
  • openclaw.tudominio.es es un marcador: sustitúyelo en DNS, comandos y configuración por un nombre que controles. Necesitas autorización para modificar su zona DNS.
  • En autogestionado lo haces tú; en administrado Netebu prepara el dominio acordado y tú facilitas las autorizaciones. No envíes claves ni tokens en el ticket.
  • Prepara una copia según Copias de seguridad, instantáneas y clave SSH en tu VPS. Para conectarte por SSH, consulta Cómo entrar al panel de tu VPS desde el área de cliente. Los comandos de sistema se ejecutan como root por SSH; OpenClaw siempre con su usuario de servicio.

Paso a paso

  1. Crea un registro A para openclaw con la IPv4 del VPS. Añade AAAA solo si tu VPS tiene IPv6 funcional y nginx será accesible por ella. Un AAAA antiguo puede romper la emisión del certificado aunque A sea correcto. Guarda los valores DNS anteriores para poder volver atrás. Si utilizas un proxy DNS externo, deja inicialmente el registro en modo solo DNS.

Desde tu ordenador comprueba ambos tipos:

dig +short A openclaw.tudominio.es
dig +short AAAA openclaw.tudominio.es

Deben devolver únicamente las direcciones previstas; AAAA puede estar vacío si no utilizas IPv6. Espera la propagación antes de continuar.

  1. En el VPS, guarda la configuración de OpenClaw en un directorio privado nuevo. No reutilices el nombre de una copia anterior:
COPIA=$(mktemp -d /root/openclaw-antes-https.XXXXXX)
chmod 700 "$COPIA"
printf 'Anota esta ruta privada para volver atrás: %s\n' "$COPIA"
cp -a /home/openclaw/.openclaw/openclaw.json "$COPIA/openclaw.json"
apt-get update
apt-get install -y nginx certbot python3-certbot-nginx
cp -a /etc/nginx "$COPIA/nginx"

La copia contiene secretos: no la descargues a un lugar público ni la adjuntes a soporte.

  1. Antes de escribir, comprueba que no existen /etc/nginx/sites-available/openclaw ni /etc/nginx/sites-enabled/openclaw; si existen, detente y revisa su contenido. Crea /etc/nginx/sites-available/openclaw con este contenido. Mantén literales las variables que empiezan por $:
server {
    listen 80;
    listen [::]:80;
    server_name openclaw.tudominio.es;

    location / {
        proxy_pass http://127.0.0.1:18789;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_read_timeout 3600s;
    }
}

X-Forwarded-For se sobrescribe con $remote_addr; no uses $proxy_add_x_forwarded_for, que conserva valores enviados por el cliente. Este ejemplo supone conexión directa a nginx, sin un CDN intermedio.

ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/openclaw
nginx -t && systemctl reload nginx

Si el enlace o el fichero ya existen, detente y revisa lo que hay: no los sobrescribas a ciegas. Todavía no introduzcas el token en el navegador por HTTP.

  1. Solicita el certificado y la redirección a HTTPS:
certbot --nginx --redirect -d openclaw.tudominio.es
nginx -t
certbot renew --dry-run
systemctl status certbot.timer --no-pager

Certbot solicita un correo de contacto y aceptar las condiciones. Debe quedar habilitada la renovación automática. No aceptes advertencias del navegador como solución a un certificado incorrecto.

  1. Autoriza el origen HTTPS exacto y únicamente la dirección del proxy local utilizado aquí: nginx conecta a 127.0.0.1. trustedProxies identifica al intermediario, no a los clientes: no añadas la IP pública del VPS ni redes completas. Estos comandos sustituyen las listas: si ya utilizas Tailscale u otro origen autorizado, conserva sus orígenes explícitos, sin comodines ni barras finales; revisa por separado qué proxies necesita esa configuración.
sudo -u openclaw -H openclaw config set gateway.controlUi.allowedOrigins '["https://openclaw.tudominio.es"]' --strict-json
sudo -u openclaw -H openclaw config set gateway.trustedProxies '["127.0.0.1"]' --strict-json
sudo -u openclaw -H openclaw config validate && systemctl restart openclaw.service
sudo -u openclaw -H openclaw security audit

Reinicia solo si la validación pasa. No cambies gateway.bind, no desactives la autenticación por token ni actives excepciones de origen inseguras.

Cómo comprobar que ha funcionado

Desde una conexión externa abre https://openclaw.tudominio.es sin parámetros ni fragmentos: certificado válido e interfaz visible. HTTP debe redirigir a HTTPS. Para autenticarte, utiliza el token obtenido de forma privada según Cómo empezar con tu VPS OpenClaw de forma segura, únicamente en el mecanismo de conexión de la interfaz HTTPS; nunca lo envíes a comprobadores externos. Verifica también la conexión del Gateway, no solo que carga la página.

El Gateway pide su token; el nombre de host mostrado está sustituido por un marcador (redactado).

En el VPS, comprueba systemctl is-active openclaw.service, ss -ltn 'sport = :18789' y ufw status verbose. Solo debe haber escucha loopback para el Gateway. Desde otro equipo fuera del VPS, nc -vz IP_DEL_VPS 18789 debe fallar; repite con cada IPv4 e IPv6 pública asignada. Sustituye el marcador. No añadas una regla de cortafuegos para ese puerto.

Si algo falla

  • Certbot no valida: revisa A y AAAA, propagación y acceso entrante a 80/443. No cambies el Gateway a escucha pública.
  • 502: comprueba el servicio y su escucha local. Consulta los registros privadamente y redacta secretos antes de compartirlos.
  • Origen rechazado: revisa esquema HTTPS y nombre exacto en allowedOrigins; no utilices *.
  • Volver atrás: conserva SSH. Para retirar solo este sitio, mueve el enlace /etc/nginx/sites-enabled/openclaw al directorio privado de copia cuya ruta anotaste, ejecuta nginx -t y recarga únicamente si pasa. Restaura openclaw.json con cp -a desde esa ruta privada anotada a su ruta original; valida como openclaw y reinicia el servicio. Restaura los valores DNS anteriores. Comprueba que el acceso por túnel vuelve a funcionar. No borres certificados ni restaures todo nginx si hay otros cambios posteriores; revisa primero el alcance de la copia.

Relacionados

  • 0 Los Usuarios han Encontrado Esto Útil
¿Fue útil la respuesta?

Artículos Relacionados

¿Cómo gestiono mi servidor VPS?

¿Cómo gestiono mi servidor VPS? En VPS no administrados tú eres el responsable de la...

¿Qué diferencia un VPS de un servidor dedicado?

¿Qué diferencia un VPS de un servidor dedicado? La mayor diferencia es que un servidor dedicado...

¿Qué es un servidor VPS?

¿Qué es un servidor VPS? Un VPS es un Servidor Virtual Privado que se encarga de particionar una...

Ventajas de servidores VPS

Ventajas de servidores VPS A continuación, te explicamos algunas de las grandes ventajas que...

¿Cúal es la diferencia entre un VPS administrado y un VPS no administrado?

¿Cuál es la diferencia entre un VPS administrado y un VPS no administrado? A continuación, te...