Saltar al contenido
Sistemas · 5 min de lectura · Actualizado 2026-08-03

La firma: por qué un sistema no entra si no está firmado

Instalar un sistema es ejecutar código. La firma es lo que decide de quién te fías.

Un sistema no son solo datos. Trae código que corre dentro de tu cuenta y puede leer y escribir en tus tablas. Instalarlo es, literalmente, ejecutar lo que venga en ese archivo.

Por eso cada sistema va firmado, y tu instalación comprueba la firma antes de tocar nada.

Cómo funciona, en corto

Hay dos claves que van juntas:

Dónde vive Qué hace
Clave privada Solo en tu máquina Firma los sistemas. Nunca sale de ahí
Clave pública En cada instalación Comprueba las firmas. No sirve para firmar

Tu instalación tiene solo la pública. Puede verificar que un sistema es tuyo, pero no puede fabricar uno nuevo que se lo parezca.

Importante

Que la privada no esté en el servidor es el punto entero. Si alguien comprometiera tu cuenta, no podría instalarse código propio: no tendría con qué firmarlo, y sin firma válida no entra nada.

Qué se firma exactamente

Se firma el sistema completo: las tablas, las reglas, las herramientas y cada archivo de código. Cambiar un solo carácter en cualquiera de ellos rompe la firma.

Eso significa que si alguien intercepta el archivo entre tu máquina y tu cliente y le mete una línea, la instalación lo rechaza.

Las dos variables, y dónde va cada una

Esto es lo que hay que dejar bien puesto una vez:

Variable Dónde Para qué
SISTEMAS_FIRMA_PUBLICA En todas las instalaciones Comprobar firmas. Sin ella no entra ningún sistema
SISTEMAS_FIRMA_PRIVADA Solo donde construyes los sistemas Firmarlos. Es la máquina de quien los publica

Importante

La privada nunca va en el servidor de un cliente. Quien entrara ahí podría firmarse sus propios sistemas y meterle código a esa cuenta — que es justo lo que la firma existe para impedir.

La comprobación falla cerrada: sin clave pública no se instala nada. No es un aviso que puedas saltarte.

Consejo

Si montas una instalación nueva y todos los sistemas fallan al instalarse, empieza por ahí: casi siempre falta SISTEMAS_FIRMA_PUBLICA.

Crear tus claves

La primera vez, desde tu máquina:

node scripts/firmar-sistema.mjs claves

Te genera el par. La privada queda en tu máquina —por defecto en ~/.runop/firma-sistemas.pem— y la pública es la que repartes.

Las dos variables van en base64, en una sola línea. El PEM crudo tiene saltos de línea y se rompe al pasar por el entorno:

base64 -i ~/.runop/firma-sistemas.pem | tr -d '\n'

Con la privada puesta, el export sale firmado solo

Si en tu máquina está SISTEMAS_FIRMA_PRIVADA, exportar un sistema desde la pantalla de Sistemas ya te lo da firmado, listo para instalar en la cuenta de cualquier cliente. No hay paso manual.

Si no está puesta, el archivo sale sin firma y hay que firmarlo aparte:

node scripts/firmar-sistema.mjs firmar mi-sistema.json ~/.runop/firma-sistemas.pem

Y para comprobarlo antes de mandárselo a nadie:

node scripts/firmar-sistema.mjs comprobar mi-sistema.json

Consejo

comprobar necesita la clave pública: la toma de SISTEMAS_FIRMA_PUBLICA o se la pasas como segundo argumento.

Cambiar un sistema invalida su firma

La firma cubre el contenido. En cuanto tocas la definición —subes la versión, añades un campo— deja de valer, porque ya no es lo que se firmó.

El sistema lo detecta y descarta la firma vieja en vez de arrastrarla, así que el archivo que exportes sale sin firma y lo notas ahí mismo. Con la clave privada puesta ni te enteras: se vuelve a firmar sola.

Importante

Si exportas sin la clave privada configurada, revisa que el archivo lleve firma antes de mandarlo. Si no, el cliente recibirá «La firma no cuadra con el contenido» al instalarlo, y el error aparece lejos de donde se causó.

Cuida la clave privada

Importante

Quien tenga tu clave privada puede instalar código en la cuenta de cualquier cliente tuyo que confíe en tu clave pública. No la subas a un repositorio, no la mandes por chat y no la guardes en el servidor.

Si crees que se filtró: genera un par nuevo, actualiza SISTEMAS_FIRMA_PUBLICA en todas tus instalaciones y vuelve a firmar tus sistemas con la clave nueva. A partir de ese momento, lo firmado con la vieja deja de entrar.

Y guárdala donde no se pierda: sin ella no puedes firmar versiones nuevas de tus propios sistemas.

¿Te resolvió la duda?