Різниця між .keystore файлом і .jks файлом


226

Я намагався знайти різницю між .keystoreфайлами та .jksфайлами, але не зміг її знайти. Я знаю, що jksце "сховище Java", і обидва є способом зберігання пар ключів / значень.

Чи є якась різниця чи перевагу використовувати одне над іншим?

Відповіді:


197

В кінцевому рахунку, .keystoreі .jksє тільки розширення файлів: це до вас , щоб назвати файли здраво. Деякі програми використовують файл зберігання ключів, який зберігається у $HOME/.keystore: зазвичай мається на увазі, що це файл JKS, оскільки JKS - це тип зберігання ключів за замовчуванням у постачальника безпеки Sun / Oracle Java . Не всі використовують .jksрозширення для файлів JKS, оскільки це мається на увазі за замовчуванням. Я рекомендую використовувати розширення, просто пам’ятайте, який тип вказати (якщо вам потрібно).

У Java слово зберігання ключів може мати будь-яке з наступних значень, залежно від контексту:

Коли ми говоримо про файл та сховище, це насправді не сховище для пар ключів / значень (для цього є багато чи інших форматів). Скоріше, це контейнер для зберігання криптографічних ключів та сертифікатів (я вважаю, що деякі з них також можуть зберігати паролі). Як правило, ці файли зашифровані та захищені паролем, щоб не надавати ці дані стороннім сторонам.

Java використовує свій KeyStoreклас та пов'язаний API, щоб скористатися магазином клавіш ( незалежно від того, чи це файл чи ні ). JKS- це специфічний для Java формат файлів, але API також можна використовувати з іншими типами файлів, як правило, PKCS # 12. Коли ви хочете завантажити сховище ключів, потрібно вказати його тип зберігання ключів. Умовні розширення:

  • .jksдля типу "JKS",
  • .p12або .pfxдля типу "PKCS12"(ім'я специфікації - PKCS # 12, але #воно не використовується в імені типу зберігання ключів Java).

Крім того, BouncyCastle також забезпечує його реалізацію, зокрема BKS (зазвичай використовується .bksрозширення), що часто використовується для додатків Android.


Я можу підтвердити, ніж змінити розширення з .jks на .keystore. Будь ласка, резервні копії, перш ніж це зробити !!
BMaximus

77

Ви в цьому збентежені.

A keystore- контейнер сертифікатів, приватних ключів тощо.

Існують технічні характеристики того, яким повинен бути формат цього магазину ключів, і переважаючим є # PKCS12

JKS - реалізація ключів у Java. Є також BKS і т.д.

Це всі типи брелоків .

Отже, щоб відповісти на ваше запитання:

різниця між .keystore файлами та .jks файлами

Немає жодної. JKS - файли зберігання ключів. Існує різниця, хоча типи брелоків . Наприклад, JKSпроти#PKCS12


2
Я б сказав, що основним типом зберігання ключів є JKS, а не PKCS №12, лише тому, що слово "keystore" є частиною термінології Java, і лише рідко використовується поза контекстом Java. Це, як говорять, файли PKCS # 12 дійсно (як правило, .pfxабо .p12).
Бруно

@Bruno: Ви маєте на увазі переважаючий тип у програмах Java.
Cratylus

10
Ні, я маю на увазі, що слово "keystore" - це здебільшого слово Java. Інші програми / платформи рідко називають місце / файл, де ключі та сертифікати зберігаються "сховищем ключів". MS називає, наприклад, файли PKCS # 12 "Обмін персональною інформацією". Інші мають назви, такі як "брелок брелоків" (OSX), "база даних сертифікатів" (NSS), "сховище сертифікатів", "брелоки", ..., для місць, де вони зберігають ключі та сертифікати, а не насправді "зберігання ключів".
Бруно

3
@Bruno: Я бачу , що ви mean.Good point.I не думав про це , як цього before.Thanks
Кратилі

3

Однією з причин вибору .keystore over .jks є те, що Unity розпізнає перший, але не останній, коли ви переходите до вибору файлу зберігання ключів (Unity 2017.3, macOS).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.