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-verifysolo 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)
-
Habilita WSS. Establece la configuración de
wssmediante el panel de configuración (o la puerta de enlace /zeroclaw config set):[wss] enabled = trueDeja
cert_path/key_pathvací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 ejecutaropensslpor tu cuenta. Establécelos solo para usar tu propio certificado de servidor y, en cualquier caso, utiliza rutas absolutas; la configuración no expande~. -
Abrir el puerto del firewall:
sh
sudo ufw allow 9781/tcpEl puerto WSS predeterminado es 9781. Cámbialo con
port = <number>en la sección[wss]. -
Inicia (o reinicia) el daemon:
sh
zeroclaw daemonDeberí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:
-
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-tlsEsto escribe
ca.crt,client.crtyclient.keyen--out-dir. Añade--forcepara sobrescribir un certificado existente con ese nombre. -
Copie los tres archivos en
<config-dir>/tls/de la estación de trabajo (después,zerocode --connect wss://<remote-ip>:9781los 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.keyComo
ca.crtes la misma CA que firmó el certificado del servidor del demonio, esto también verifica el servidor;--tls-skip-verifysolo es necesario si omites--tls-ca-certal 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:
| Campo | Predeterminado | Descripción |
|---|---|---|
enabled | false | Habilitar el listener WSS |
bind | 0.0.0.0 | Dirección de enlace |
port | 9781 | Puerto de escucha |
cert_path | (ninguno) | Ruta absoluta al certificado PEM |
key_path | (ninguno) | Ruta absoluta a la clave privada PEM |