In generale, ogni chiave privata dovrebbe essere unica e le chiavi private non dovrebbero viaggiare.
Se si dispone di diverse "applicazioni" che prevedono connessioni HTTPS (sulla porta 443, handshake SSL / TLS ...) e che vengono eseguite sulla stessa macchina, l'applicazione non esegue effettivamente l'SSL. Il SSL è gestito dal frontend del server Web (ad esempio, un Apache o IIS): quel frontend esegue l'SSL, quindi (solo allora) riceve la richiesta HTTP, impara il percorso di destinazione e quindi sa a quale applicazione deve essere inviata la richiesta . In questo tipo di configurazione, la chiave privata e il certificato non sono di proprietà delle applicazioni, ma del frontend. In quel modello, si darebbe una chiave privata e un certificato per macchina .
Il paragrafo precedente presuppone che i "micro servizi" siano tutti registrati su un motore HTTP + SSL comune, come previsto se utilizzano tutti la porta HTTPS predefinita (443) e lo stesso indirizzo IP. potresti fare diversamente, ad es. eseguire i diversi servizi su porte distinte (l'URL di connessione dovrà quindi includere il nome della porta) o anche su indirizzi IP distinti (se ogni macchina possiede più indirizzi IP). In tal caso, ciascun micro servizio può eseguire il proprio motore HTTP + SSL e quindi avere il proprio certificato e la propria chiave privata.
Esistono due motivi principali per cui si desidera rendere più chiavi e certificati privati:
-
Si desidera fornire certificati a sistemi che non sono equivalenti tra loro in termini di sicurezza, ad es. appartengono a clienti distinti che non si fidano completamente (o non si conoscono) l'un l'altro. L'idea è che la conoscenza di una chiave privata utilizzata da un server consente (concettualmente) di impersonare quel server. Allo stesso modo, avere certificati distinti consente di revocarne uno senza revocare gli altri.
-
Le chiavi private che viaggiano sono "meno private". È meglio quando le chiavi private sono generate su una macchina e non lasciare mai la macchina. Quindi, se hai 10 server, vorrai avere (almeno) 10 chiavi private. Spostare le chiavi private in sicurezza è fattibile ma richiede attenzione (la copia delle connessioni SSH dovrebbe essere OK).