Un certificato è un oggetto che contiene un nome e una chiave pubblica e che è firmato. L'autorità di certificazione è l'entità che applica la firma: in tal modo, la CA afferma: " questa chiave pubblica è effettivamente di proprietà del ragazzo con tale nome". La proprietà della chiave è definita dal controllo della chiave privata corrispondente.
La richiesta di certificato è un oggetto che contiene un nome e una chiave pubblica, che invii a una CA. La CA compilerà il certificato (e quindi lo firmerà), inserendo i relativi dati; in particolare, inserirà la chiave pubblica inviata come parte della richiesta. Ovviamente, la CA lo farà solo dopo aver verificato che è davvero la tua chiave (suppongo, o almeno spero strongmente, che, nella tua situazione, il "dipartimento IT" abbia un modo ragionevolmente affidabile per assicurarsi che la richiesta di certificato hanno ricevuto è davvero quello che hai inviato). Naturalmente, per produrre la richiesta di certificato, è necessario generare una coppia di chiavi pubblica / privata. La chiave privata non ha mai lasciato il tuo computer; solo la parte pubblica è stata inviata alla CA.
Installando il certificato nella tua macchina, proprio lungo la chiave privata corrispondente, hai permesso a PHP di eseguire l'autenticazione del client basata su certificati. Il protocollo principale è SSL / TLS (quindi HTTPS, che è HTTP-over-SSL). Quando il client SSL si collega al server, eseguono alcune crittografie ("handshake") e il server può quindi richiedere un certificato dal client: il client deve quindi inviare il certificato e utilizzare il corrispondente chiave privata per rispondere a una sfida dal server (in pratica, calcolando una firma digitale ). Il server quindi convalida il certificato (cioè verifica la firma su cui è applicata la CA): questo certificato indica al server qual è la tua chiave pubblica, a quel punto il server può verificare la tua risposta alla sfida e , quindi, assicurati che ti stia davvero parlando.
Riepilogo: il server autentica il client verificando che il client controlli una chiave privata che corrisponde a una chiave pubblica specifica. Il certificato associa quella chiave pubblica al tuo nome. La CA stabilisce questo legame. Per produrre il certificato, la CA deve conoscere la tua chiave pubblica; la tua chiave pubblica è contenuta nella richiesta di certificato che hai inviato alla CA.