Ho usato openssl
per creare un certificato X.509 ma non capisco la relazione tra un X.509 e un certificato SSL. Sono gli stessi? Un certificato SSL è solo un certificato X.509 utilizzato per SSL?
SSL è di gran lunga il più grande uso dei certificati X.509, molte persone usano i termini in modo intercambiabile. Non sono uguali comunque; un "Certificato SSL" è un certificato X.509 con utilizzo di chiavi estese: Autenticazione server (1.3.6.1.5.5.7.3.1).
Altri tipi "comuni" di certificati X.509 sono l'Autenticazione client (1.3.6.1.5.5.7.3.2), Code Signing (1.3.6.1.5.5.7.3.3) e una manciata di altri sono usati per vari schemi di crittografia e autenticazione.
I certificati X.509 sono un formato generico e altamente flessibile. SSL (ora noto come "TLS") utilizza i certificati X.509. Un "certificato SSL" è un certificato il cui contenuto lo rende utilizzabile per SSL (solitamente, utilizzabile per un server SSL ).
In particolare, nella maggior parte degli usi di SSL, il client vorrà vedere il nome del server previsto nel certificato. In un contesto Web (HTTPS), il "nome del server previsto" è quello che appare nell'URL; i controlli eseguiti dal client sono descritti in RFC 2818 (sezione 3.1) . Inoltre, quando un client e un server "parlano SSL", sono d'accordo sugli algoritmi crittografici da usare, alcuni dei quali implicano l'uso della chiave pubblica del server, come appare nel certificato; ad esempio, se il client e il server scelgono una suite di crittografia che dice "scambio di chiavi RSA", il certificato del server deve contenere una chiave pubblica RSA e se il certificato contiene estensioni che limitano le modalità di utilizzo autorizzate quella chiave (ad esempio l'estensione Key Usage
), quindi queste estensioni devono consentire l'utilizzo della "crittografia" perché è ciò che è implicito da "scambio di chiavi RSA" in SSL.
Altre caratteristiche dei certificati possono proibire l'utilizzo di un server SSL, dove "proibire" significa "il client urlerà e balbetterà e visualizzerà un avviso rosso spaventoso per l'utente". Ad esempio, un certificato può contenere un'estensione Extended Key Usage
che elenca l'esaustivo elenco di "ruoli" per l'entità che lo utilizza; se l'estensione è presente, allora dovrebbe contenere "autenticazione server" o l'indicatore speciale "qualsiasi utilizzo".
Ci sono molti dettagli su cui preoccuparsi. La CA commerciale riassume il tutto come "un certificato SSL", che in realtà significa "un certificato X.509 che è tutto kasher per SSL, tutti i clienti ne saranno contenti".
Leggi altre domande sui tag openssl tls certificates x.509