Attualmente sto lavorando a un progetto in cui viene eseguita quasi tutta la comunicazione utilizzando HTTPS e ActiveMQ. I server e i client sono fisicamente in luoghi diversi, organizzazioni diverse e in diversi domini. I componenti del sistema comunicheranno utilizzando SSL a 2 vie (o meglio TLS w / Mutual Authentitcation? Non sono ancora molto bravo nel denominare le cose), che ci dà l'autenticazione, ma vorremmo usare un certo valore dal certificato per eseguire l'autorizzazione ( in particolare accesso alle code sul broker dei messaggi). A causa di questi e altri requisiti, vorremmo fornire un identificatore univoco simile a URI a ciascun componente del sistema. Abbiamo deciso che sarà simile a questo: "< ORGANIZZAZIONE >. Backend.processore" o "< ORGANIZZAZIONE > .dispositivo. < UUID >" ..
Ora, la mia domanda è: dovrei inserire questo identificatore nel campo DN / CN e inserire i nomi DNS (quindi gli indirizzi fisici) in SAN (o subjAltName) del certificato, o meglio dovrei inserirlo in SAN e DNS in entrambi Campo SAN e DN / CN?
In base a questa risposta , mettere il suddetto identificatore nel campo DN / CN è sicuro, poiché la nostra infrastruttura sarà omogenea e le connessioni da fonti esterne saranno fatte solo dai browser, su cui possiamo facilmente inserire dei requisiti, questo dovrebbe funzionare in modo impeccabile. Ma forse dovremmo generare due certificati per ciascun componente e usarne uno per presentare ai client di connessione (quindi DNSname sia in SAN che DN / CN) e l'altro per autorizzarci ai componenti a cui ci connettiamo?