Modifica Dopo aver letto questa domanda e risposta ho un po ' più di una comprensione. La mia domanda ora è: posso usare un certificato che un utente abbia firmato da una CA registrata come VeriSign, GoDaddy, ecc., Invece di firmare un certificato da solo? In tal caso, quale meccanismo devo usare per verificarlo? CRL o OCSP avranno i dettagli di tutte le CA o dovrò controllare i loro registri individuali?
originale: Mi piacerebbe sapere come si verifica la validità dei certificati di varie CA ai fini dell'autenticazione reciproca su un sito Web o se si tratta di un problema da considerare?
Sono in procinto di apprendere l'autenticazione reciproca e come funziona, insieme alla firma dei certificati in generale, quindi qualsiasi suggerimento o riferimento da leggere per aiutare a comprendere questo argomento sarebbe apprezzato.
Attualmente ho un semplice server Ubuntu in esecuzione in un VirtualBox che sto usando per sperimentare. Questo sta eseguendo nginx e mysql, entrambi sono configurati per richiedere TLS / SSL. Il prossimo passo che voglio implementare è l'autenticazione reciproca tra nginx e il browser client; L'ho installato con successo sul server utilizzando un certificato CA autofirmato. Tuttavia, sto cercando di capire come viene verificato il certificato inviato dal browser.
Ho una coppia di chiavi pubblica / privata sul sistema operativo host e potrei generare una richiesta di firma del certificato e inviarla al server guest, che potrebbe firmare il certificato CA e restituirlo al mio host. Questo certificato sarà firmato, ma non da una CA registrata. Facendo un ulteriore passo avanti, ora visito un altro sito Web che non controllo: deve firmare anche il mio certificato?
La mia comprensione è che una volta che un certificato è stato firmato, non è necessario che venga firmato di nuovo tranne che per il rinnovo. Questo è vero solo se firmato da una CA registrata come GoDaddy, CACert, ecc. Pertanto, tornando al mio sito Web, come faccio a sapere se si tratta di un certificato valido? Se utilizzo CRL o OCSP per verificare se è stato revocato o meno, controllerà tutti i provider o solo la società che gestisce la lista / il server?
Supponendo che in un modo o nell'altro io possa convalidare l'autenticità del certificato, come faccio a usarlo per autenticare (o, suppongo in modo più accurato, autorizzare) l'utente specifico? Devo memorizzare una copia della loro chiave pubblica e verificare in questo modo o è possibile estrarre alcuni dettagli unici che mi consentano di autorizzarli?
Questa è una nuova area per me e ho indubbiamente avanzato alcune ipotesi errate, oltre a mettere in luce alcune lacune nella mia conoscenza e comprensione dell'argomento. Apprezzerei qualsiasi risposta che possa aiutare a correggerli. Inoltre, se la domanda non è abbastanza specifica per le regole del forum, mi scuso e qualsiasi guida su come inquadrarlo meglio in modo da non violare le regole sarebbe utile.