Apa perbedaan antara cacerts dan keystore?

112

Apa perbedaan antara keduanya, cacerts dan keystore?

Jika saya menggunakan definisi yang ditemukan di tautan ini, cacerts dan keystore , tampaknya itu adalah kumpulan sertifikat, tetapi dalam konteks sistem terdistribusi (Java). Yang mana yang digunakan untuk mengotentikasi selama koneksi SSL? Keduanya atau hanya salah satunya atau alternatif?

dimas
sumber
3
cacerts = sertifikat otoritas sertifikat ?
Peter Mortensen

Jawaban:

139

'cacerts' adalah truststore. Penyimpanan kepercayaan digunakan untuk mengautentikasi rekan. Keystore digunakan untuk mengautentikasi diri Anda sendiri.

Marquis dari Lorne
sumber
Hai EJP terima kasih atas jawabannya, saya kutip bahwa sebelum saya membaca jawaban Anda;) Jadi hanya klarifikasi jika saya meringkas jawaban Anda dalam Francis dan Pangea. Cacerts digunakan untuk mengautentikasi klien yang meminta akses atau koneksi dan untuk keystore saya tidak mengerti mengapa Anda ingin mengautentikasi diri sendiri. :)
dimas
20
Baca lagi apa yang saya tulis. (1) Truststore digunakan untuk mengautentikasi peer. Jika Anda adalah klien, server adalah rekannya; jika Anda adalah servernya, sebaliknya. (2) Jika Anda adalah server, atau jika Anda adalah klien dan server meminta autentikasi klien, Anda harus mengautentikasi diri Anda sendiri ke peer, jadi Anda memerlukan sertifikat dan kunci pribadi Anda sendiri, yang ada di keystore. (Membingungkan, format file yang sama digunakan untuk keduanya dan itu disebut file keystore.)
Marquis dari Lorne
Oke mengerti, tapi hanya pertanyaan lanjutan. Cacert saya berisi semua sertifikat yang disimpan di keystore dan lainnya. Meskipun beberapa sertifikat termasuk sertifikat pribadi aplikasi saya memiliki alias berbeda tetapi memiliki tanda tangan digital yang sama. Jadi idealnya saya dapat menggunakan cacert saya jika saya terhubung ke server dan meminta otentikasi?
dimas
Saya tidak mengerti bagian tentang 'alias berbeda'. Beda dari apa? Pertanyaan terakhir Anda dapat dijawab dengan eksperimen.
Marquis dari Lorne
3
@ raja777 cacertsadalah yang Anda percayai. Saya tidak melihat alasan untuk itu untuk mengubah antara lingkungan, kecuali Anda melakukan kesalahan dengan menggunakan sertifikat yang ditandatangani sendiri untuk server pengujian: kesalahan karena itu berarti Anda menggunakan jalur kode yang berbeda dalam pengujian dan produksi.
Marquis dari Lorne
41

cacerts adalah tempat Java menyimpan sertifikat publik CA root. Java menggunakan cacert untuk mengotentikasi server.

Keystore adalah tempat Java menyimpan kunci pribadi klien sehingga dapat membagikannya ke server ketika server meminta otentikasi klien.

Aravind Yarram
sumber
@dimas Terbukti, tapi yang dia maksud sebenarnya adalah 'permintaan'.
Marquis dari Lorne
1
@ user207421 Saya yakin dalam jawaban ini Aplikasi Java memainkan peran sebagai klien http dan url http yang dipanggil oleh Aplikasi Java kami adalah aplikasi server. Jadi KeyStore aplikasi Java klien kami harus memiliki kunci pribadi + sertifikat (kunci publik bertanda tangan) dan hanya mengirim sertifikat ke aplikasi server, bukan? Dan jika aplikasi server juga merupakan aplikasi Java, ia memverifikasi sertifikat yang dikirim oleh aplikasi Java klien kami, menggunakan file cacert-nya sendiri, bukan?
pengguna104309
0

Cacerts adalah detail otoritas penandatanganan tepercaya yang dapat mengeluarkan sertifikat. Inilah yang dimiliki sebagian besar browser karena sertifikat mana yang dianggap asli. Keystone memiliki sertifikat terkait layanan Anda untuk mengautentikasi klien.

Rahang
sumber
-2

Periksa jalur JAVA_HOME Anda. Karena sistem mencari file java.policy yang terletak di JAVA_HOME/jre/lib/security. JAVA_HOME Anda harus selalu seperti itu ../JAVA/JDK.

naveen verma
sumber
3
terima kasih atas usahanya tetapi Anda harus membaca dan memahami jawaban EJP.
dimas