Lascia che risponda alla tua domanda di root (gioco di parole):
Question: what is difference between bought CA and self-signed CA? Because as I understand in both cases I need to install CA on server to validate client certificates.
Sfondo
Per rispondere a questo, assicuriamoci di capire cos'è un certificato. Quando hai una chiave pubblica / una coppia di chiavi private puoi dare la chiave pubblica a chi vuoi tu, è pubblica, ma come faranno le persone a sapere che in realtà è la tua chiave pubblica? Immagina questo scenario: Alice invia la sua chiave pubblica a Bob, ma Charlie intercetta il messaggio e sostituisce la chiave pubblica di Alice con la sua. Bob non ha modo di sapere che le chiavi pubbliche sono state cambiate perché tutto ciò che vede è una chiave pubblica. Ora Bob pensa di avere una connessione sicura con Alice, quando in realtà ha una connessione sicura con Charlie che sta fingendo di essere Alice.
I certificati risolvono questo problema di conoscenza della cui chiave pubblica hai. Il processo è che mi metto in contatto con una società di autorità di certificazione e dimostrare loro che io sono chi dico di essere (esattamente come vogliono che tu dimostri che la risposta è questa domanda ). Quindi posso inviare la mia chiave pubblica a loro e lo impacchetteranno in un certificato, che contiene la chiave pubblica stessa e un mucchio di informazioni su chi sono. La CA firmerà il certificato per dire "Certifichiamo che questa chiave pubblica appartiene a questa persona" e in modo che i dati nel certificato non possano essere modificati. Ora ho un documento "ufficiale" che dimostra che questa chiave pubblica appartiene a me. Ora non c'è modo per Charlie di fingere di essere Alice.
Nella maggior parte dei casi, non richiedi un certificato come persona, ma per un server specifico all'interno della tua azienda o nel tuo caso, ma l'idea è la stessa.
risposta
Hai 2 modi per trasformare la tua chiave pubblica in un certificato:
-
Puoi inviarlo a una delle autorità di certificazione radice pubblicamente affidabili di Internet (Digicert, Verisign, Godaddy, Letencrypt, ecc.) che ti rilasciano un certificato (a pagamento),
-
Oppure puoi creare la tua CA autofirmata e rilasciare un certificato.
L'unica vera differenza tra i due deriva dalla fiducia del pubblico; se paghi una delle radici pubbliche per certificare la tua chiave pubblica, allora ogni computer su Internet si fiderà automaticamente del tuo certificato come autentico e autentico perché si fida della reputazione della CA. Zero lavori extra per te.
Se crei la tua CA autofirmata, ogni computer dirà "cos'è questo e perché dovrei fidarmi di esso?" (ricorda che Charlie può facilmente creare la propria CA e creare un certificato con il nome di di Alice associato alla chiave pubblica di Charlie ). Dovrai quindi accedere manualmente a tutti i computer che necessitano di convalidare uno di questi certificati e dire di fidarti della CA autofirmata aggiungendo il certificato di root autofirmato all'archivio "Autorità di certificazione delle autorità di certificazione di fiducia" di quel computer.
Consigli
La creazione della propria CA radice autofirmata non è necessariamente negativa, dipende da cosa si sta tentando di fare. In molti casi, il fatto che i tuoi certificati siano pubblicamente affidabili su Internet non aggiunge nulla. Ad esempio, in un sistema di badge identificativo aziendale per entrare nell'edificio; a chi importa se quei badge identificativi sono pubblicamente affidabili o meno - ti interessa solo sapere se lo scanner della porta li riconosce. O certificati client su dispositivi embedded; i dispositivi dovranno autenticarsi su un server per ricevere gli aggiornamenti del firmware - solo quel server avrà mai bisogno di convalidare i certificati.
Se il tuo caso d'uso è uno di questi casi d'uso "sistema chiuso", allora con tutti i mezzi, usa la tua CA autofirmata.