Tengo el siguiente escenario: tengo muchos dispositivos integrados que deberían hablar con otro. Para habilitar la confianza entre estos dispositivos, me gustaría usar certificados. Los dispositivos generan un par de llaves y envían la clave pública a una instancia central que debe actuar como agente de inscripción, solicita el certificado correspondiente a la clave pública de la CA y lo envía de vuelta al cliente.
Según mi entendimiento limitado, debería ser posible solicitar un certificado para otro usuario / máquina si
a) Estoy en posesión de un certificado de agente de inscripción, con el que firmo la solicitud
b) Tengo la clave pública que debería estar certificada por la CA.
Lamentablemente, todo lo que encontré durante mi investigación en los últimos días no parece ser posible. ¿Alguien con una comprensión más profunda que yo, por favor arroje algo de luz sobre esto?
EDIT
Para aclarar lo que quiero lograr y aún no saber si es posible, aquí están los pasos:
- El dispositivo crea un par de llaves
- El dispositivo envía la clave pública de este par a una máquina que actúa como un agente de inscripción (protegido por OTP)
- La máquina, que actúa como agente de inscripción, crea un csr para el Dispositivo que contiene la clave pública y lo firma con la inscripción. certificado de agente.
- La máquina envía el csr a la RA y entrega el certificado resultante al dispositivo.
Espero que esto aclare un poco las cosas.
Lo primero que investigué fue la automatización del proceso usando certreq, especialmente certreq -new . No veo ninguna opción para proporcionar la clave pública del dispositivo a la solicitud.
Luego miré el ejemplo en Creación de una solicitud de CMC firmada por un agente de inscripción (Firmante único) , pero no puedo ver dónde ingresa la clave pública del dispositivo en la solicitud.
Como estoy más familiarizado con el lenguaje Java, también busqué en algunos ejemplos utilizando la API bouncycastle. Todos ellos utilizaron la clave privada correspondiente a la clave pública del dispositivo para firmar la solicitud, no el certificado del agente de inscripción.
Sé que lo anterior es un caso de uso común para tarjetas inteligentes, pero no encuentro cómo se hace.