Perbedaan antara file .keystore dan file .jks

227

Saya telah mencoba menemukan perbedaan antara .keystorefile dan .jksfile, namun saya tidak dapat menemukannya. Saya tahu jksadalah untuk "Java keystore" dan keduanya adalah cara untuk menyimpan pasangan kunci / nilai.

Apakah ada perbedaan atau preferensi untuk menggunakan satu sama lain?

juveria
sumber

Jawaban:

197

Pada akhirnya, .keystoredan .jkshanya ekstensi file: terserah Anda untuk memberi nama file Anda dengan bijaksana. Beberapa aplikasi menggunakan file keystore yang disimpan di $HOME/.keystore: biasanya tersirat bahwa itu adalah file JKS, karena JKS adalah tipe keystore default di penyedia keamanan Sun / Oracle Java . Tidak semua orang menggunakan .jksekstensi untuk file JKS, karena itu tersirat sebagai default. Saya akan merekomendasikan menggunakan ekstensi, hanya untuk mengingat tipe yang akan ditentukan (jika Anda perlu).

Di Jawa, kata keystore dapat memiliki salah satu dari makna berikut, tergantung pada konteksnya:

Ketika berbicara tentang file dan penyimpanan, ini sebenarnya bukan fasilitas penyimpanan untuk pasangan kunci / nilai (ada banyak atau format lain untuk ini). Sebaliknya, ini adalah wadah untuk menyimpan kunci dan sertifikat kriptografi (saya yakin beberapa di antaranya juga dapat menyimpan kata sandi). Umumnya, file-file ini dienkripsi dan dilindungi kata sandi sehingga tidak membiarkan data ini tersedia untuk pihak yang tidak berwenang.

Java menggunakan KeyStorekelasnya dan API terkait untuk menggunakan keystore ( apakah itu berbasis file atau tidak ). JKSadalah format file khusus Java, tetapi API juga dapat digunakan dengan tipe file lainnya, biasanya PKCS # 12. Ketika Anda ingin memuat keystore, Anda harus menentukan jenis keystore-nya. Ekstensi konvensional adalah:

  • .jksuntuk tipe "JKS",
  • .p12atau .pfxuntuk tipe "PKCS12"(nama spesifikasi adalah PKCS # 12, tetapi #tidak digunakan dalam nama tipe Java keystore).

Selain itu, BouncyCastle juga menyediakan implementasinya, khususnya BKS (biasanya menggunakan .bksekstensi), yang sering digunakan untuk aplikasi Android.

Bruno
sumber
Saya dapat mengonfirmasi daripada mengubah ekstensi dari .jks ke .keystore akan berfungsi. Mohon backup sebelum melakukannya !!
BMaximus
77

Anda bingung akan hal ini.

A keystoreadalah wadah sertifikat, kunci pribadi, dll.

Ada spesifikasi apa yang harus menjadi format keystore ini dan yang paling utama adalah # PKCS12

JKS adalah implementasi keystore Java. Ada juga BKS dll.

Ini semua adalah tipe keystore .

Jadi, untuk menjawab pertanyaanmu:

perbedaan antara file .keystore dan file .jks

Tidak ada. JKS adalah file keystore. Ada perbedaan antara tipe keystore . Misalnya JKSvs#PKCS12

Cratylus
sumber
2
Saya akan mengatakan tipe keystore dominan adalah JKS, bukan PKCS # 12, hanya karena kata "keystore" adalah bagian dari terminologi Java, hanya jarang digunakan di luar konteks Jawa. Ini dikatakan, file PKCS # 12 memang sangat umum (biasanya .pfxatau .p12).
Bruno
@ Bruno: Maksudmu jenis utama dalam aplikasi Java.
Cratylus
10
Tidak, maksud saya bahwa kata "keystore" sebagian besar adalah kata Jawa. Aplikasi / platform lain jarang menyebut tempat / file tempat kunci dan sertifikat menyimpan "keystore". MS memanggil file PKCS # 12 file "Personal Information Exchange", misalnya. Yang lain memiliki nama seperti "gantungan kunci" (OSX), "basis data sertifikat" (NSS), "toko sertifikat", "gantungan kunci", ..., untuk tempat penyimpanan kunci dan sertifikat, bukan "keystore".
Bruno
3
@ Bruno: Saya mengerti maksud Anda. Poin yang bagus. Saya belum pernah memikirkannya seperti ini sebelumnya. Terima kasih
Cratylus
3

Salah satu alasan untuk memilih .keystore daripada .jks adalah bahwa Unity mengenali yang pertama tetapi bukan yang terakhir ketika Anda menavigasi untuk memilih file keystore Anda (Unity 2017.3, macOS).

AbePralle
sumber