Wiki
Huella TLS
El servidor genera un certificado autofirmado en la instalación. Cada cliente confirma su huella en la primera conexión.
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.
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 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.
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é.
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 luegouversion 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.pemde 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.