Tengo el siguiente escenario:
- Varios servidores integrados independientes (Linux / ARM / lighttpd)
- Varios dispositivos de control independientes (win32 / iOS / Android)
- Cada servidor debe tener al menos un dispositivo de control
- Cada dispositivo de control puede controlar uno o más servidores
- Ninguno, pero los dispositivos de control deben poder comunicarse con los servidores
Comprendo que puedo usar los Certificados de Cliente para garantizar el "emparejamiento de dispositivo / servidor", pero no estoy seguro si es posible y (eventualmente) cómo configurar mis sistemas para cumplir con los siguientes requisitos adicionales:
- Instalación del Certificado de Cliente sin problemas: Quiero decir, me gustaría tener algún procedimiento automatizado iniciado en el servidor (posiblemente a través del botón físico) que creará e implementará un Certificado de Cliente específico (algo similar a la "Configuración protegida Wi-Fi" ").
- Creación de certificados basada en roles: cada dispositivo de control debe tener un "rol", lo que significa que puede realizar un conjunto definido de operaciones en el servidor; Básicamente, solo necesito incrustar algunos datos en el certificado en el momento de la creación.
- Los certificados de cliente deben caducar y revocarse (creo que esto es estándar, pero se debe permitir al crear el certificado).
La verdadera pregunta es cómo configurar (1), donde tengo una pequeña pista. He buscado en Internet, pero solo encontré la forma "normal" (generar certificado, autofirmar, importar manualmente en el navegador) que es manera demasiado compleja para mis Clientes :(; esperaba poder generar una URL (o imprimir una Qr) que, ingresada en el dispositivo de control, configuraría "automáticamente" su navegador (posiblemente con solo una simple confirmación "OK"). ¿Es esto (o algo equivalente a prueba de tontos) posible? de alguna manera?
Los consejos y comentarios sobre los otros temas son bienvenidos (¡por supuesto!)
NOTA: No estoy exigiendo seguridad a prueba de bancos, solo un compromiso razonable; el foco está en cuánto puedo lograr "sin molestar a los usuarios" (ingresar una contraseña es considerado molesto, desafortunadamente).