uVersion
Español
Descargar →

Wiki

Huella TLS

El servidor genera un certificado autofirmado en la instalación. Cada cliente confirma su huella en la primera conexión.

¿Es seguro? Sí. Todas las conexiones y todas las transferencias de archivos están cifradas: nadie en la red puede leer lo que circula entre tus puestos y tu servidor. Tus datos permanecen en tu propia infraestructura: nada está alojado en un tercero, nada pasa por uVersion. Solo los miembros de tu equipo, con sus propias credenciales, pueden acceder. Y si ocurre algo anormal en la conexión, el software lo detecta y bloquea de inmediato, en lugar de dejarlo pasar en silencio.

uVersion cifra todas las conexiones con HTTPS de forma predeterminada, sin nombre de dominio ni certificado comprado. El servidor genera su certificado en el primer arranque, el administrador comparte su huella con el equipo, y cada puesto la confirma una vez. Es el modelo TOFU: confianza en el primer contacto, exactamente como SSH cuando te hace validar la huella de una máquina la primera vez. Después, el cliente la compara en cada conexión y se niega a hablar con un servidor que haya cambiado.

¿Huella del servidor o suma de comprobación? Ambas son SHA-256, y eso es lo que confunde a todo el mundo. La huella del servidor identifica el certificado de tu servidor: sirve para reconocer la máquina a la que se conectan tus puestos. Una suma de comprobación verifica que un archivo descargado está intacto. Esta página solo trata de la primera.

La operación consta de dos pasos: encontrar la huella en el servidor, una vez, y luego confirmarla en cada puesto, una vez por puesto. El resto de esta página es referencia, para leer el día en que algo cambie.

Encontrar la huella

Se muestra al final de la instalación, junto a la contraseña de administrador. Después, hay tres formas de recuperarla, de la más sencilla a la más manual.

1. Desde un navegador, sin instalar nada

El servidor expone una página de información sin autenticación: abre https://TU-SERVIDOR:8443/api/server-info. Ni sudo, ni acceso SSH, ni cuenta de uVersion: es con diferencia el camino más corto.

El navegador muestra primero una advertencia de seguridad. Es normal y esperado: el certificado es autofirmado, ninguna autoridad pública lo conoce. Continúa hacia el sitio.

La advertencia de seguridad del navegador al abrir por primera vez la dirección del servidor, con el enlace o botón que permite continuar a pesar del certificado autofirmado.

La página que aparece a continuación es un bloque de datos en bruto. La huella es el valor del campo tls_fingerprint: una secuencia de bytes en hexadecimal separados por dos puntos. Es esta cadena, entera, la que transmitirás al equipo.

La página /api/server-info abierta en un navegador: los campos version, build_sha, tls_mode con el valor self_signed, y tls_fingerprint con la huella SHA-256 en hexadecimal separada por dos puntos.
Esta página dice lo que el servidor declara Es perfecta para publicar la huella a tu equipo, ya que el administrador eres tú. Por sí sola no constituye una verificación: alguien que interceptara la conexión devolvería su propio valor. Lo que protege es la comparación que hace cada puesto entre la huella realmente presentada por el servidor y la que le has transmitido por otro canal (mensajería interna, de viva voz, wiki del equipo). El cliente de línea de comandos, de hecho, hace ambas cosas y te avisa cuando difieren.

2. Desde los registros del servidor

El servidor reescribe la huella en sus registros en cada arranque. Este método funciona sin importar dónde hayas colocado el directorio de datos:

# Linux (paquet .deb)
sudo journalctl -u uversion-server | grep "TLS fingerprint" | tail -1

# Docker
docker compose logs server | grep "TLS fingerprint" | tail -1

3. En el archivo fingerprint

Este archivo se escribe junto al certificado, es decir, en el directorio de [tls] cert_path tal como figura en tu config.toml. Las rutas de abajo son los valores predeterminados: si has movido el directorio de datos, lee primero cert_path en tu configuración.

# Linux, dossier de donnees par defaut
sudo cat /var/lib/uversion/data/tls/fingerprint

# Windows
Get-Content "C:\ProgramData\uVersion\data\tls\fingerprint"

# Docker : chemin fixe par l'entrypoint, sur le volume de donnees
docker compose exec server cat /data/tls/fingerprint

Confirmar en el cliente

Una vez por puesto, y una vez para siempre. El gesto depende de la herramienta.

Cliente de escritorio

Rellena la pantalla de inicio de sesión como de costumbre. En la primera conexión a este servidor, en lugar de iniciar sesión, se abre una ventana Verify server identity. Compara la huella mostrada con la que compartió tu administrador y, si coinciden, haz clic en Trust this server: la conexión se reanuda por sí sola justo después. Si difieren, Cancel, y ve a preguntar por qué.

La ventana Verify server identity del cliente de escritorio: la dirección del servidor, la huella SHA-256 mostrada completa, la versión del servidor y el modo TLS, y luego los botones Cancel y Trust this server.

CLI uversion

uversion trust https://uversion.example.com:8443          # interactif
uversion trust https://uversion.example.com:8443 --yes    # sans question (CI, script)
uversion trusted                                          # liste les serveurs epingles
uversion login <url>                                      # propose l'epinglage si besoin

uversion trust es interactivo: muestra el host, la versión del servidor, el modo TLS y la huella, recuerda comparar con lo que transmitió el administrador y luego espera una confirmación y/N. Cualquier otra respuesta cancela sin fijar nada. La opción --yes se salta esta pregunta, para un script o una integración continua: fija sin que nadie mire, reservada a una red que controles.

uversion login propone la misma confirmación por sí mismo cuando el servidor aún no está fijado: en un puesto, por lo general no hay nada que ejecutar antes.

Plugin de Unreal Engine

Ejecuta uversion trust <url> una vez en una terminal antes de abrir el proyecto, o inicia sesión primero desde el cliente de escritorio: el plugin sigue su fijación (pin). Está previsto un diálogo nativo en el editor para más adelante.

Plugin de Rider

Usa uversion por debajo. Un uversion trust <url> una vez, y Rider pasa.

Si la huella cambia

El cliente se niega a conectarse y lo anuncia con claridad. No vuelvas a confirmar por reflejo: comprueba primero con tu administrador, por un canal distinto de la conexión en cuestión. Tres explicaciones posibles: una reinstalación del servidor, una rotación voluntaria del certificado, o alguien situado entre tus puestos y tu servidor. Una vez obtenida la explicación:

  • Cliente de escritorio: botón Trust new fingerprint en el diálogo de alerta.
  • CLI: uversion mistrust <url> y luego uversion login <url>.

Regenerar el certificado

El certificado es válido durante diez años de forma predeterminada: no hay ninguna renovación que prever. Para forzar una rotación (compromiso sospechado, requisito de auditoría):

# Linux
sudo rm /var/lib/uversion/data/tls/cert.pem /var/lib/uversion/data/tls/key.pem
sudo systemctl restart uversion-server

# Windows
Remove-Item "C:\ProgramData\uVersion\data\tls\cert.pem"
Remove-Item "C:\ProgramData\uVersion\data\tls\key.pem"
Restart-Service uVersionServer

El servidor regenera un certificado y una nueva huella al arrancar. Avisa al equipo y vuelve a compartirla: cada puesto tendrá que confirmar de nuevo.

Aportar tu propio certificado

Puedes colocar tu propio certificado, emitido por tu PKI interna o por una autoridad pública. No hay ninguna opción que activar: al arrancar, el servidor reutiliza los archivos presentes en las rutas [tls] cert_path y [tls] key_path, y vuelve a calcular la huella. Esto solo vale si tu servidor tiene un nombre DNS: ninguna autoridad emite un certificado para una dirección IP privada.

Tres restricciones de formato, cada una de las cuales ya le ha costado una tarde a alguien:

  • el archivo de certificado contiene la cadena completa, la hoja primero (el fullchain.pem de certbot tiene exactamente esta forma);
  • la clave privada es un PEM sin cifrar: una clave protegida por frase de contraseña no se descifrará;
  • coloca ambos archivos antes de reiniciar. Si solo encuentra uno, el servidor considera el estado incompleto y regenera un par autofirmado encima del que quedaba.

Lo que esto cambia para los puestos:

  • Navegador: se acabaron las advertencias, siempre que abras el servidor por el nombre que lleva el certificado. Por su dirección IP, la advertencia se mantiene.
  • Puestos ya fijados: la huella cambia, así que cada uno verá la alerta descrita más arriba y tendrá que confirmar de nuevo. Avisa antes del cambio, o todo el equipo se topará con un mensaje de interceptación en el mismo momento.
  • Renovaciones: cada renovación cambia la huella y reinicia este ritual, y el certificado solo se vuelve a leer al arrancar el servidor. Con un certificado público de 90 días, eso son seis reconfirmaciones para todo el equipo al año: prefiere una duración larga mientras este coste no se haya absorbido.