Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Configuración remota (WSS)

Conecta zerocode en tu estación de trabajo a un daemon que se ejecuta en otra máquina (Raspberry Pi, servidor doméstico, VPS, etc.).

Para consultar la guía completa, opción por opción, que cubre las tres topologías (directa, demonio a retransmisor y cliente a través de retransmisor), consulta Transporte seguro (configuración de extremo a extremo).

El plano WSS está autenticado mutuamente (mTLS). Cada cliente presenta un certificado; no existe una ruta solo de servidor/sin autenticación. La forma sencilla de obtener un certificado de cliente es el registro (a continuación): no tienes que gestionar certificados manualmente. Si prefieres generar uno tú mismo, consulta más abajo los pasos para usar tu propio certificado en “En tu estación de trabajo”. --tls-skip-verify solo relaja la verificación del certificado del servidor para un certificado autofirmado del demonio; el certificado de cliente sigue siendo obligatorio en cualquier caso.

Inscripción (recomendada)

La primera vez que conectes un cliente sin certificado de forma interactiva, zerocode se registra automáticamente:

zerocode --connect wss://<remote-host>:9781

Solicita el código de emparejamiento de un solo uso del demonio (impreso en el registro del demonio al iniciarse), muestra una cadena de autenticación corta (SAS) para confirmarla en la consola del demonio (de modo que se detecte una CA de tipo man-in-the-middle) y, después, obtiene y almacena en caché un certificado de cliente en <config-dir>/tls. Las ejecuciones posteriores no requieren configuración, y el certificado se renueva automáticamente cuando ha transcurrido aproximadamente el 50 % de su vida útil. Para inscribirse de forma no interactiva, usa zerocode --enroll --connect wss://<remote-host>:9781.

Un cliente sin certificado que accede al plano WSS sin inscribirse recibe un mensaje accionable («inscríbase primero») y el demonio registra el cliente rechazado que no se ha migrado; nunca se queda bloqueado silenciosamente. Un certificado revocado se rechaza durante el protocolo de enlace (según el registro de certificados emitidos), por lo que revocar un dispositivo perdido surte efecto en su próxima conexión.

allow_unpaired_enrollment en la sección [enroll] está reservado para un flujo futuro de migración sin código. Esta versión rechaza cualquier valor no vacío al iniciar el daemon; déjelo vacío y use el código de emparejamiento mostrado.

En el host remoto (lado del daemon)

  1. Habilita WSS. Establece la configuración de wss mediante el panel de configuración (o la puerta de enlace / zeroclaw config set):

    [wss]
    enabled = true
    

    Deja cert_path / key_path vacíos (el valor predeterminado): el demonio genera automáticamente su propia CA y el certificado del servidor en <data_dir>/tls/ durante el primer arranque, por lo que no necesitas ejecutar openssl por tu cuenta. Establécelos solo para usar tu propio certificado de servidor y, en cualquier caso, utiliza rutas absolutas; la configuración no expande ~.

  2. Abrir el puerto del firewall:

    sh

    sudo ufw allow 9781/tcp
    

    El puerto WSS predeterminado es 9781. Cámbialo con port = <number> en la sección [wss].

  3. Inicia (o reinicia) el daemon:

    sh

    zeroclaw daemon
    

    Deberías ver una línea de registro confirmando que el receptor WSS se inició en 0.0.0.0:9781.

En tu estación de trabajo (lado zerocode)

El registro (más arriba) es la forma más rápida de obtener un certificado de cliente. Si prefiere usar su propio certificado de cliente en lugar de registrarse de forma interactiva:

  1. Emite un certificado de cliente en el host del daemon, desde la CA de mTLS del daemon:

    zeroclaw security issue-client-cert --name my-laptop --out-dir /tmp/my-laptop-tls
    

    Esto escribe ca.crt, client.crt y client.key en --out-dir. Añade --force para sobrescribir un certificado existente con ese nombre.

  2. Copie los tres archivos en <config-dir>/tls/ de la estación de trabajo (después, zerocode --connect wss://<remote-ip>:9781 los encuentra automáticamente), o indique sus rutas explícitamente:

    sh

    zerocode --connect wss://<remote-ip>:9781 \
      --tls-ca-cert     /path/ca.crt \
      --tls-client-cert /path/client.crt \
      --tls-client-key  /path/client.key
    

    Como ca.crt es la misma CA que firmó el certificado del servidor del demonio, esto también verifica el servidor; --tls-skip-verify solo es necesario si omites --tls-ca-cert al usar un certificado autofirmado del demonio que no hayas fijado.

Eso es todo. zerocode se reconecta automáticamente si se interrumpe la conexión.

Referencia de configuración

La sección wss:

CampoPredeterminadoDescripción
enabledfalseHabilitar el listener WSS
bind0.0.0.0Dirección de enlace
port9781Puerto de escucha
cert_path(ninguno)Ruta absoluta al certificado PEM
key_path(ninguno)Ruta absoluta a la clave privada PEM