Qual è la differenza tra cacerts e keystore?


112

Qual è la differenza tra i due, cacerts e keystore?

Se uso la definizione trovata in questi link, cacerts e keystore , sembra che siano una raccolta di certificati, ma nel contesto di un sistema distribuito (Java). Quale viene utilizzato per l'autenticazione durante una connessione SSL? Entrambi o solo uno di loro o si alternano?


3
cacerts = certificati dell'autorità di certificazione ?
Peter Mortensen

Risposte:


139

"cacerts" è un truststore. Un truststore viene utilizzato per autenticare i peer. Un keystore viene utilizzato per autenticarti.


Ciao EJP grazie per le risposte, l'ho citato prima di leggere qualsiasi tua risposta;) Quindi solo una precisazione se riassumo le tue risposte in Francesco e Pangea. Cacerts viene utilizzato per autenticare i client che richiedono l'accesso o la connessione e per il keystore non capisco perché dovresti autenticarti. :)
dimas

20
Leggi di nuovo quello che ho scritto. (1) Un truststore viene utilizzato per autenticare i peer. Se sei il client, il server è il peer; se sei il server, viceversa. (2) Se siete il server, o se sei il cliente e il richiede l'autenticazione client server, è necessario autenticarsi al peer, quindi è necessario il proprio certificato e la chiave privata, che sono nel keystore. (In modo confuso, lo stesso formato di file viene utilizzato per entrambi ed è chiamato file di archivio chiavi.)
Marchese di Lorne,

OK, ma solo una domanda di follow-up. I miei certificati contengono tutti i certificati archiviati nel keystore e altro ancora. Sebbene alcuni certificati, incluso il certificato privato della mia applicazione, abbiano alias diversi ma hanno le stesse firme digitali. Quindi idealmente posso usare i miei certificati se mi collego al server e richiedo l'autenticazione?
dimas

Non capisco la parte sui "diversi alias". Diverso da cosa? Alla tua domanda finale è possibile rispondere tramite esperimento.
Marchese di Lorne

3
@ raja777m cacertsè di chi ti fidi. Non vedo alcun motivo per cambiare tra gli ambienti, a meno che non commetti l'errore di utilizzare certificati autofirmati per i server di test: un errore perché significa che stai utilizzando percorsi di codice diversi in test e in produzione.
Marchese di Lorne

41

cacerts è dove Java memorizza i certificati pubblici delle CA root. Java utilizza cacerts per autenticare i server.

Keystore è dove Java memorizza le chiavi private dei client in modo che possa condividerle con il server quando il server richiede l'autenticazione del client.


@dimas Evidentemente, ma quello che realmente intende è "richieste".
Marchese di Lorne

1
@ user207421 Credo in questa risposta che l'app Java stia giocando il ruolo di un client http e l'URL http che la nostra app Java chiama è l'applicazione server. Quindi KeyStore della nostra app Java client dovrebbe avere sia chiave privata + certificato (chiave pubblica firmata) e inviare solo il certificato all'app server, giusto? E se l'app server è anche un'app Java, verifica il certificato inviato dalla nostra app Java client, utilizzando il proprio file cacert, giusto?
user104309

0

I certificati sono dettagli delle autorità di firma affidabili che possono emettere certificati. Questo è ciò che la maggior parte dei browser ha grazie ai quali i certificati sono determinati ad essere autentici. Keystone dispone dei certificati relativi al servizio per autenticare i client.


-2

Controlla il tuo percorso JAVA_HOME. Mentre i sistemi cercano un file java.policy che si trova in JAVA_HOME/jre/lib/security. Il tuo JAVA_HOME dovrebbe essere sempre ../JAVA/JDK.


3
grazie per lo sforzo ma dovresti leggere e capire la risposta dell'EJP.
dimas
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.