Qual è la differenza tra .pfx
e .cert
file di certificato?
Distribuiamo .pfx
o .cert
per lautenticazione del client?
Commenti
- Anche [ 1 ] , [ 2 ] , [ 3 ]
Risposta
Ci sono due oggetti: la chiave privata , che è di proprietà del server , mantiene il segreto e utilizza per ricevere nuove connessioni SSL; e la chiave pubblica che è matematicamente collegata alla chiave privata e resa “pubblica”: viene inviata a ogni client come parte dei passaggi iniziali della connessione.
certificato è nominalmente un contenitore per la chiave pubblica. Include la chiave pubblica, il nome del server, alcune informazioni aggiuntive sul server e una firma calcolata da un autorità di certificazione (CA). Quando il server invia la sua chiave pubblica a un client, invia effettivamente il suo certificato, con alcuni altri certificati (il certificato che contiene la chiave pubblica della CA che ha firmato il suo certificato e il certificato per la CA che ha firmato la CA “s certificato e così via). I certificati sono oggetti intrinsecamente pubblici.
Alcune persone usano il termine “certificato” per designare sia il certificato che la chiave privata; questa è una fonte comune di confusione. Personalmente mi attengo la definizione rigorosa per cui il certificato è il contenitore firmato solo per la chiave pubblica.
Un file .pfx
è un Archivio PKCS # 12 : una borsa che può contenere molti oggetti con protezione tramite password opzionale; ma, di solito, un archivio PKCS # 12 contiene un certificato (possibilmente con il suo set assortito di certificati CA) e la chiave privata corrispondente.
Daltra parte, un .cert
(o .cer
o
) di solito contiene un singolo certificato, da solo e senza alcun wrapping (nessuna chiave privata, nessuna protezione con password, solo il certificato).
Commenti
- Durante lautenticazione del client, richiediamo che il certificato del client SSL sia installato nel browser del client. Questo file .pfx o .cert?
- I certificati sono dati pubblici; tutti li hanno. Ma lautenticazione del client consiste nel far fare al client qualcosa che solo quel client può fare; quindi il client deve sapere qualcosa che non è pubblico e che ‘ è la chiave privata. Pertanto, il client deve avere una chiave privata insieme al suo certificato; se la chiave è stata generata dal browser del client, la configurazione prevista è di importarla nel client insieme al certificato. Pertanto, un file .pfx.
- Ho un file .pfx dal server IIS in cui è installato il mio certificato. È questo il file .pfx che dovrebbe essere distribuito? Poiché CA ha fornito il file .cert che include le chiavi che è stato installato sul server.
- @ Xsecure123 no; ci sono ‘ due scenari qui – e Thomas rispondeva solo per lautenticazione del client (dove ogni client ha il ‘ certificato privato per dimostrare la propria identità). – Sembra che ‘ stia facendo qualcosaltro: sembra che ‘ stia utilizzando un certificato autofirmato in IIS e i clienti non ‘ si fidano di esso. – In tal caso, dovresti fornire ai client un file .cer dal server. – perché i client hanno bisogno solo della chiave pubblica per fidarsi del server. – Se hanno anche la chiave privata, possono impersonare il server o decrittografarlo ‘ il traffico e quello ‘ non qualcosa che vuoi.
- @ BrainSlugs83: Cosa intendi per certificato privato. Thomas ha detto che i certificati sono dati pubblici. Puoi approfondire?
Risposta
So che questa è una discussione vecchia di un anno, ma per i lettori futuri , come accennato in precedenza, no, non distribuisci il file .pfx perché è il file contenente la chiave privata. Puoi estrarre e distribuire il certificato (che è pubblico) dal file .pfx tramite il metodo descritto qui: https://stackoverflow.com/questions/403174/convert-pfx-to-cer
Commenti
- Dove archiviare il file pfx in modo sicuro sul server? Ovviamente ‘ non vorresti unaltra applicazione che utilizzi il tuo file PFX, ma non ‘ penso di ‘ vorrei salvarlo anche con la mia applicazione.Vorresti semplicemente importarlo nel gestore certificati della macchina e accedervi in modo programmatico?
- La gestione delle chiavi private @Matt è un intero argomento in sé. Alcune risposte pertinenti possono essere trovate qui e qui (questultima ‘ non è strettamente rilevante per i file PFX, ma è ancora nuovo). Il file PFX stesso ‘ non deve essere memorizzato sul tuo server (ad esempio, se ‘ stai utilizzando IIS7, ‘ d importare il PFX; in caso contrario, ‘ d estrarre il cert & chiave privata dal PFX nei propri file).
Rispondi
Cosa è la differenza tra i file di certificato .pfx e .cert?
La risposta data da @Thomas Pornin è piuttosto buona.
Distribuiamo .pfx o .cert per lautenticazione del client?
Dipende dal processo utilizzato.
Il processo tipico per impostare un client esterno per lautenticazione utilizzando un certificato è il seguente: 1) il client genera una coppia di chiavi asimmetriche (chiavi pubbliche e private); 2) il client genera una richiesta di firma del certificato per la chiave pubblica e la invia al server; 3) il server firma la chiave pubblica e restituisce questa firma (il ” certificato “) al client; 4) il client memorizza la chiave privata insieme a questo certificato nel proprio keystore. A questo punto, quando il client si connette al server, viene presentato il certificato e il client viene autenticato.
Nello scenario precedente, un ” .cert ” viene rimandato al client.
Internamente, molte organizzazioni eseguiranno questo processo per i propri dipendenti. In questa situazione, si verifica quanto segue: il personale IT genera la coppia di chiavi pubblica e privata per un dipendente insieme alla richiesta di firma del certificato. Quindi firmano la chiave pubblica (utilizzando la loro autorità di certificazione privata) e posizionano il certificato risultante, insieme alla chiave privata corrispondente e a tutti i certificati CA intermedi (la ” catena di certificati “), nel keystore dellutente.
In questo scenario, un ” .pfx ” (o ” .pem “) sarebbe appropriato in quanto conterrebbe tutti gli elementi necessari per lautenticazione del client: il privato chiave, il certificato e la catena di certificati.
Cerca ” Registrazione automatica del certificato ” per trovare un modo per automatizzare questo processo per i tuoi utenti e dispositivi aziendali.