Actualmente estoy trabajando en un proyecto en el que casi toda la comunicación se realiza mediante HTTPS y ActiveMQ. Los servidores y clientes están físicamente en diferentes lugares, diferentes organizaciones y en diferentes dominios. Los componentes del sistema se comunicarán utilizando SSL de 2 vías (o más bien TLS con autenticación mutua? No soy muy bueno para nombrar cosas todavía), lo que nos da autenticación, pero nos gustaría usar algún valor del certificado para realizar la autorización ( particularmente acceso a colas en el intermediario de mensajes). Debido a estos y otros requisitos, nos gustaría dar un identificador único similar a URI a cada componente del sistema. Hemos decidido que se verá similar a esto: "< ORGANIZATION > .backend.processor" o "< ORGANIZATION > .device. < UUID >" ..
Ahora, mi pregunta es: ¿debo poner este identificador en el campo DN / CN y poner los nombres DNS (direcciones físicas) en SAN (o subjAltName) del certificado, o más bien debería ponerlo en SAN y DNS en ambos SAN y DN / CN campo?
De acuerdo con esta respuesta , poner el identificador mencionado anteriormente en el campo DN / CN es seguro, ya que nuestra infraestructura será homogénea y las conexiones desde fuentes externas se realizarán solo mediante navegadores, lo que podemos poner fácilmente en los requisitos, esto debería funcionar perfectamente. Pero tal vez deberíamos generar dos certificados para cada componente y usar uno para presentar a los clientes conectados (por lo tanto, DNSname en SAN y DN / CN) y el otro para autorizarnos a los componentes a los que nos conectamos.